~ubuntu-branches/ubuntu/hardy/postgresql-8.4/hardy-backports

« back to all changes in this revision

Viewing changes to src/include/catalog/pg_opclass.h

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2009-03-20 12:00:13 UTC
  • Revision ID: james.westby@ubuntu.com-20090320120013-hogj7egc5mjncc5g
Tags: upstream-8.4~0cvs20090328
ImportĀ upstreamĀ versionĀ 8.4~0cvs20090328

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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-2009, PostgreSQL Global Development Group
 
29
 * Portions Copyright (c) 1994, Regents of the University of California
 
30
 *
 
31
 * $PostgreSQL$
 
32
 *
 
33
 * NOTES
 
34
 *        the genbki.sh 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 for bootstrapping purposes.  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 (   403             bit_ops                         PGNSP PGUID  423 1560 t 0 ));
 
96
DATA(insert (   403             bool_ops                        PGNSP PGUID  424   16 t 0 ));
 
97
DATA(insert (   403             bpchar_ops                      PGNSP PGUID  426 1042 t 0 ));
 
98
DATA(insert (   405             bpchar_ops                      PGNSP PGUID  427 1042 t 0 ));
 
99
DATA(insert (   403             bytea_ops                       PGNSP PGUID  428   17 t 0 ));
 
100
DATA(insert (   403             char_ops                        PGNSP PGUID  429   18 t 0 ));
 
101
DATA(insert (   405             char_ops                        PGNSP PGUID  431   18 t 0 ));
 
102
DATA(insert (   403             cidr_ops                        PGNSP PGUID 1974  869 f 0 ));
 
103
DATA(insert (   405             cidr_ops                        PGNSP PGUID 1975  869 f 0 ));
 
104
DATA(insert (   403             date_ops                        PGNSP PGUID  434 1082 t 0 ));
 
105
DATA(insert (   405             date_ops                        PGNSP PGUID  435 1082 t 0 ));
 
106
DATA(insert (   403             float4_ops                      PGNSP PGUID 1970  700 t 0 ));
 
107
DATA(insert (   405             float4_ops                      PGNSP PGUID 1971  700 t 0 ));
 
108
DATA(insert (   403             float8_ops                      PGNSP PGUID 1970  701 t 0 ));
 
109
DATA(insert (   405             float8_ops                      PGNSP PGUID 1971  701 t 0 ));
 
110
DATA(insert (   403             inet_ops                        PGNSP PGUID 1974  869 t 0 ));
 
111
DATA(insert (   405             inet_ops                        PGNSP PGUID 1975  869 t 0 ));
 
112
DATA(insert OID = 1979 ( 403    int2_ops        PGNSP PGUID 1976   21 t 0 ));
 
113
#define INT2_BTREE_OPS_OID 1979
 
114
DATA(insert (   405             int2_ops                        PGNSP PGUID 1977   21 t 0 ));
 
115
DATA(insert OID = 1978 ( 403    int4_ops        PGNSP PGUID 1976   23 t 0 ));
 
116
#define INT4_BTREE_OPS_OID 1978
 
117
DATA(insert (   405             int4_ops                        PGNSP PGUID 1977   23 t 0 ));
 
118
DATA(insert (   403             int8_ops                        PGNSP PGUID 1976   20 t 0 ));
 
119
DATA(insert (   405             int8_ops                        PGNSP PGUID 1977   20 t 0 ));
 
120
DATA(insert (   403             interval_ops            PGNSP PGUID 1982 1186 t 0 ));
 
121
DATA(insert (   405             interval_ops            PGNSP PGUID 1983 1186 t 0 ));
 
122
DATA(insert (   403             macaddr_ops                     PGNSP PGUID 1984  829 t 0 ));
 
123
DATA(insert (   405             macaddr_ops                     PGNSP PGUID 1985  829 t 0 ));
 
124
/*
 
125
 * Here's an ugly little hack to save space in the system catalog indexes.
 
126
 * btree doesn't ordinarily allow a storage type different from input type;
 
127
 * but cstring and name are the same thing except for trailing padding,
 
128
 * and we can safely omit that within an index entry.  So we declare the
 
129
 * btree opclass for name as using cstring storage type.
 
130
 */
 
131
DATA(insert (   403             name_ops                        PGNSP PGUID 1986   19 t 2275 ));
 
132
DATA(insert (   405             name_ops                        PGNSP PGUID 1987   19 t 0 ));
 
133
DATA(insert (   403             numeric_ops                     PGNSP PGUID 1988 1700 t 0 ));
 
134
DATA(insert (   405             numeric_ops                     PGNSP PGUID 1998 1700 t 0 ));
 
135
DATA(insert OID = 1981 ( 403    oid_ops         PGNSP PGUID 1989   26 t 0 ));
 
136
#define OID_BTREE_OPS_OID 1981
 
137
DATA(insert (   405             oid_ops                         PGNSP PGUID 1990   26 t 0 ));
 
138
DATA(insert (   403             oidvector_ops           PGNSP PGUID 1991   30 t 0 ));
 
139
DATA(insert (   405             oidvector_ops           PGNSP PGUID 1992   30 t 0 ));
 
140
DATA(insert (   403             record_ops                      PGNSP PGUID 2994 2249 t 0 ));
 
141
DATA(insert (   403             text_ops                        PGNSP PGUID 1994   25 t 0 ));
 
142
DATA(insert (   405             text_ops                        PGNSP PGUID 1995   25 t 0 ));
 
143
DATA(insert (   403             time_ops                        PGNSP PGUID 1996 1083 t 0 ));
 
144
DATA(insert (   405             time_ops                        PGNSP PGUID 1997 1083 t 0 ));
 
145
DATA(insert (   403             timestamptz_ops         PGNSP PGUID  434 1184 t 0 ));
 
146
DATA(insert (   405             timestamptz_ops         PGNSP PGUID 1999 1184 t 0 ));
 
147
DATA(insert (   403             timetz_ops                      PGNSP PGUID 2000 1266 t 0 ));
 
148
DATA(insert (   405             timetz_ops                      PGNSP PGUID 2001 1266 t 0 ));
 
149
DATA(insert (   403             varbit_ops                      PGNSP PGUID 2002 1562 t 0 ));
 
150
DATA(insert (   403             varchar_ops                     PGNSP PGUID 1994   25 f 0 ));
 
151
DATA(insert (   405             varchar_ops                     PGNSP PGUID 1995   25 f 0 ));
 
152
DATA(insert (   403             timestamp_ops           PGNSP PGUID  434 1114 t 0 ));
 
153
DATA(insert (   405             timestamp_ops           PGNSP PGUID 2040 1114 t 0 ));
 
154
DATA(insert (   403             text_pattern_ops        PGNSP PGUID 2095   25 f 0 ));
 
155
DATA(insert (   403             varchar_pattern_ops PGNSP PGUID 2095   25 f 0 ));
 
156
DATA(insert (   403             bpchar_pattern_ops      PGNSP PGUID 2097 1042 f 0 ));
 
157
DATA(insert (   403             money_ops                       PGNSP PGUID 2099  790 t 0 ));
 
158
DATA(insert (   405             bool_ops                        PGNSP PGUID 2222   16 t 0 ));
 
159
DATA(insert (   405             bytea_ops                       PGNSP PGUID 2223   17 t 0 ));
 
160
DATA(insert (   405             int2vector_ops          PGNSP PGUID 2224   22 t 0 ));
 
161
DATA(insert (   403             tid_ops                         PGNSP PGUID 2789   27 t 0 ));
 
162
DATA(insert (   405             xid_ops                         PGNSP PGUID 2225   28 t 0 ));
 
163
DATA(insert (   405             cid_ops                         PGNSP PGUID 2226   29 t 0 ));
 
164
DATA(insert (   405             abstime_ops                     PGNSP PGUID 2227  702 t 0 ));
 
165
DATA(insert (   405             reltime_ops                     PGNSP PGUID 2228  703 t 0 ));
 
166
DATA(insert (   405             text_pattern_ops        PGNSP PGUID 2229   25 f 0 ));
 
167
DATA(insert (   405             varchar_pattern_ops PGNSP PGUID 2229   25 f 0 ));
 
168
DATA(insert (   405             bpchar_pattern_ops      PGNSP PGUID 2231 1042 f 0 ));
 
169
DATA(insert (   403             reltime_ops                     PGNSP PGUID 2233  703 t 0 ));
 
170
DATA(insert (   403             tinterval_ops           PGNSP PGUID 2234  704 t 0 ));
 
171
DATA(insert (   405             aclitem_ops                     PGNSP PGUID 2235 1033 t 0 ));
 
172
DATA(insert (   783             box_ops                         PGNSP PGUID 2593  603 t 0 ));
 
173
DATA(insert (   783             poly_ops                        PGNSP PGUID 2594  604 t 603 ));
 
174
DATA(insert (   783             circle_ops                      PGNSP PGUID 2595  718 t 603 ));
 
175
DATA(insert (   2742    _int4_ops                       PGNSP PGUID 2745  1007 t 23 ));
 
176
DATA(insert (   2742    _text_ops                       PGNSP PGUID 2745  1009 t 25 ));
 
177
DATA(insert (   2742    _abstime_ops            PGNSP PGUID 2745  1023 t 702 ));
 
178
DATA(insert (   2742    _bit_ops                        PGNSP PGUID 2745  1561 t 1560 ));
 
179
DATA(insert (   2742    _bool_ops                       PGNSP PGUID 2745  1000 t 16 ));
 
180
DATA(insert (   2742    _bpchar_ops                     PGNSP PGUID 2745  1014 t 1042 ));
 
181
DATA(insert (   2742    _bytea_ops                      PGNSP PGUID 2745  1001 t 17 ));
 
182
DATA(insert (   2742    _char_ops                       PGNSP PGUID 2745  1002 t 18 ));
 
183
DATA(insert (   2742    _cidr_ops                       PGNSP PGUID 2745  651 t 650 ));
 
184
DATA(insert (   2742    _date_ops                       PGNSP PGUID 2745  1182 t 1082 ));
 
185
DATA(insert (   2742    _float4_ops                     PGNSP PGUID 2745  1021 t 700 ));
 
186
DATA(insert (   2742    _float8_ops                     PGNSP PGUID 2745  1022 t 701 ));
 
187
DATA(insert (   2742    _inet_ops                       PGNSP PGUID 2745  1041 t 869 ));
 
188
DATA(insert (   2742    _int2_ops                       PGNSP PGUID 2745  1005 t 21 ));
 
189
DATA(insert (   2742    _int8_ops                       PGNSP PGUID 2745  1016 t 20 ));
 
190
DATA(insert (   2742    _interval_ops           PGNSP PGUID 2745  1187 t 1186 ));
 
191
DATA(insert (   2742    _macaddr_ops            PGNSP PGUID 2745  1040 t 829 ));
 
192
DATA(insert (   2742    _name_ops                       PGNSP PGUID 2745  1003 t 19 ));
 
193
DATA(insert (   2742    _numeric_ops            PGNSP PGUID 2745  1231 t 1700 ));
 
194
DATA(insert (   2742    _oid_ops                        PGNSP PGUID 2745  1028 t 26 ));
 
195
DATA(insert (   2742    _oidvector_ops          PGNSP PGUID 2745  1013 t 30 ));
 
196
DATA(insert (   2742    _time_ops                       PGNSP PGUID 2745  1183 t 1083 ));
 
197
DATA(insert (   2742    _timestamptz_ops        PGNSP PGUID 2745  1185 t 1184 ));
 
198
DATA(insert (   2742    _timetz_ops                     PGNSP PGUID 2745  1270 t 1266 ));
 
199
DATA(insert (   2742    _varbit_ops                     PGNSP PGUID 2745  1563 t 1562 ));
 
200
DATA(insert (   2742    _varchar_ops            PGNSP PGUID 2745  1015 t 1043 ));
 
201
DATA(insert (   2742    _timestamp_ops          PGNSP PGUID 2745  1115 t 1114 ));
 
202
DATA(insert (   2742    _money_ops                      PGNSP PGUID 2745  791 t 790 ));
 
203
DATA(insert (   2742    _reltime_ops            PGNSP PGUID 2745  1024 t 703 ));
 
204
DATA(insert (   2742    _tinterval_ops          PGNSP PGUID 2745  1025 t 704 ));
 
205
DATA(insert (   403             uuid_ops                        PGNSP PGUID 2968  2950 t 0 ));
 
206
DATA(insert (   405             uuid_ops                        PGNSP PGUID 2969  2950 t 0 ));
 
207
DATA(insert (   403             enum_ops                        PGNSP PGUID 3522  3500 t 0 ));
 
208
DATA(insert (   405             enum_ops                        PGNSP PGUID 3523  3500 t 0 ));
 
209
DATA(insert (   403             tsvector_ops            PGNSP PGUID 3626  3614 t 0 ));
 
210
DATA(insert (   783             tsvector_ops            PGNSP PGUID 3655  3614 t 3642 ));
 
211
DATA(insert (   2742    tsvector_ops            PGNSP PGUID 3659  3614 t 25 ));
 
212
DATA(insert (   403             tsquery_ops                     PGNSP PGUID 3683  3615 t 0 ));
 
213
DATA(insert (   783             tsquery_ops                     PGNSP PGUID 3702  3615 t 20 ));
 
214
 
 
215
#endif   /* PG_OPCLASS_H */