1 #----------------------------------------------------------------------
4 # Initial contents of the pg_opclass system catalog.
6 # Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
7 # Portions Copyright (c) 1994, Regents of the University of California
9 # src/include/catalog/pg_opclass.dat
11 #----------------------------------------------------------------------
15 # Note: we hard-wire an OID only for a few entries that have to be explicitly
16 # referenced in the C code or in built-in catalog entries. The rest get OIDs
17 # assigned on-the-fly during initdb.
19 { opcmethod
=> 'btree', opcname
=> 'array_ops', opcfamily
=> 'btree/array_ops',
20 opcintype
=> 'anyarray' },
21 { opcmethod
=> 'hash', opcname
=> 'array_ops', opcfamily
=> 'hash/array_ops',
22 opcintype
=> 'anyarray' },
23 { opcmethod
=> 'btree', opcname
=> 'bit_ops', opcfamily
=> 'btree/bit_ops',
25 { opcmethod
=> 'btree', opcname
=> 'bool_ops', opcfamily
=> 'btree/bool_ops',
26 opcintype
=> 'bool' },
27 { opcmethod
=> 'btree', opcname
=> 'bpchar_ops',
28 opcfamily
=> 'btree/bpchar_ops', opcintype
=> 'bpchar' },
29 { opcmethod
=> 'hash', opcname
=> 'bpchar_ops', opcfamily
=> 'hash/bpchar_ops',
30 opcintype
=> 'bpchar' },
31 { opcmethod
=> 'btree', opcname
=> 'bytea_ops', opcfamily
=> 'btree/bytea_ops',
32 opcintype
=> 'bytea' },
33 { opcmethod
=> 'btree', opcname
=> 'char_ops', opcfamily
=> 'btree/char_ops',
34 opcintype
=> 'char' },
35 { opcmethod
=> 'hash', opcname
=> 'char_ops', opcfamily
=> 'hash/char_ops',
36 opcintype
=> 'char' },
37 { opcmethod
=> 'btree', opcname
=> 'cidr_ops', opcfamily
=> 'btree/network_ops',
38 opcintype
=> 'inet', opcdefault
=> 'f' },
39 { opcmethod
=> 'hash', opcname
=> 'cidr_ops', opcfamily
=> 'hash/network_ops',
40 opcintype
=> 'inet', opcdefault
=> 'f' },
41 { oid
=> '3122', oid_symbol
=> 'DATE_BTREE_OPS_OID',
42 opcmethod
=> 'btree', opcname
=> 'date_ops',
43 opcfamily
=> 'btree/datetime_ops', opcintype
=> 'date' },
44 { opcmethod
=> 'hash', opcname
=> 'date_ops', opcfamily
=> 'hash/date_ops',
45 opcintype
=> 'date' },
46 { opcmethod
=> 'btree', opcname
=> 'float4_ops', opcfamily
=> 'btree/float_ops',
47 opcintype
=> 'float4' },
48 { opcmethod
=> 'hash', opcname
=> 'float4_ops', opcfamily
=> 'hash/float_ops',
49 opcintype
=> 'float4' },
50 { oid
=> '3123', oid_symbol
=> 'FLOAT8_BTREE_OPS_OID',
51 opcmethod
=> 'btree', opcname
=> 'float8_ops', opcfamily
=> 'btree/float_ops',
52 opcintype
=> 'float8' },
53 { opcmethod
=> 'hash', opcname
=> 'float8_ops', opcfamily
=> 'hash/float_ops',
54 opcintype
=> 'float8' },
55 { opcmethod
=> 'btree', opcname
=> 'inet_ops', opcfamily
=> 'btree/network_ops',
56 opcintype
=> 'inet' },
57 { opcmethod
=> 'hash', opcname
=> 'inet_ops', opcfamily
=> 'hash/network_ops',
58 opcintype
=> 'inet' },
59 { opcmethod
=> 'gist', opcname
=> 'inet_ops', opcfamily
=> 'gist/network_ops',
60 opcintype
=> 'inet', opcdefault
=> 'f' },
61 { opcmethod
=> 'spgist', opcname
=> 'inet_ops',
62 opcfamily
=> 'spgist/network_ops', opcintype
=> 'inet' },
63 { oid
=> '1979', oid_symbol
=> 'INT2_BTREE_OPS_OID',
64 opcmethod
=> 'btree', opcname
=> 'int2_ops', opcfamily
=> 'btree/integer_ops',
65 opcintype
=> 'int2' },
66 { opcmethod
=> 'hash', opcname
=> 'int2_ops', opcfamily
=> 'hash/integer_ops',
67 opcintype
=> 'int2' },
68 { oid
=> '1978', oid_symbol
=> 'INT4_BTREE_OPS_OID',
69 opcmethod
=> 'btree', opcname
=> 'int4_ops', opcfamily
=> 'btree/integer_ops',
70 opcintype
=> 'int4' },
71 { opcmethod
=> 'hash', opcname
=> 'int4_ops', opcfamily
=> 'hash/integer_ops',
72 opcintype
=> 'int4' },
73 { oid
=> '3124', oid_symbol
=> 'INT8_BTREE_OPS_OID',
74 opcmethod
=> 'btree', opcname
=> 'int8_ops', opcfamily
=> 'btree/integer_ops',
75 opcintype
=> 'int8' },
76 { opcmethod
=> 'hash', opcname
=> 'int8_ops', opcfamily
=> 'hash/integer_ops',
77 opcintype
=> 'int8' },
78 { opcmethod
=> 'btree', opcname
=> 'interval_ops',
79 opcfamily
=> 'btree/interval_ops', opcintype
=> 'interval' },
80 { opcmethod
=> 'hash', opcname
=> 'interval_ops',
81 opcfamily
=> 'hash/interval_ops', opcintype
=> 'interval' },
82 { opcmethod
=> 'btree', opcname
=> 'macaddr_ops',
83 opcfamily
=> 'btree/macaddr_ops', opcintype
=> 'macaddr' },
84 { opcmethod
=> 'hash', opcname
=> 'macaddr_ops',
85 opcfamily
=> 'hash/macaddr_ops', opcintype
=> 'macaddr' },
86 { opcmethod
=> 'btree', opcname
=> 'macaddr8_ops',
87 opcfamily
=> 'btree/macaddr8_ops', opcintype
=> 'macaddr8' },
88 { opcmethod
=> 'hash', opcname
=> 'macaddr8_ops',
89 opcfamily
=> 'hash/macaddr8_ops', opcintype
=> 'macaddr8' },
91 # Here's an ugly little hack to save space in the system catalog indexes.
92 # btree doesn't ordinarily allow a storage type different from input type;
93 # but cstring and name are the same thing except for trailing padding,
94 # so we choose to omit that within an index entry. Here we declare the
95 # btree opclass for name as using cstring storage type. This does require
96 # that we pad the cstring out with the full NAMEDATALEN bytes when performing
97 # index-only scans. See corresponding hacks in ExecInitIndexOnlyScan() and
99 { opcmethod
=> 'btree', opcname
=> 'name_ops', opcfamily
=> 'btree/text_ops',
100 opcintype
=> 'name', opckeytype
=> 'cstring' },
102 { opcmethod
=> 'hash', opcname
=> 'name_ops', opcfamily
=> 'hash/text_ops',
103 opcintype
=> 'name' },
104 { oid
=> '3125', oid_symbol
=> 'NUMERIC_BTREE_OPS_OID',
105 opcmethod
=> 'btree', opcname
=> 'numeric_ops',
106 opcfamily
=> 'btree/numeric_ops', opcintype
=> 'numeric' },
107 { opcmethod
=> 'hash', opcname
=> 'numeric_ops',
108 opcfamily
=> 'hash/numeric_ops', opcintype
=> 'numeric' },
109 { oid
=> '1981', oid_symbol
=> 'OID_BTREE_OPS_OID',
110 opcmethod
=> 'btree', opcname
=> 'oid_ops', opcfamily
=> 'btree/oid_ops',
111 opcintype
=> 'oid' },
112 { opcmethod
=> 'hash', opcname
=> 'oid_ops', opcfamily
=> 'hash/oid_ops',
113 opcintype
=> 'oid' },
114 { opcmethod
=> 'btree', opcname
=> 'oidvector_ops',
115 opcfamily
=> 'btree/oidvector_ops', opcintype
=> 'oidvector' },
116 { opcmethod
=> 'hash', opcname
=> 'oidvector_ops',
117 opcfamily
=> 'hash/oidvector_ops', opcintype
=> 'oidvector' },
118 { opcmethod
=> 'btree', opcname
=> 'record_ops',
119 opcfamily
=> 'btree/record_ops', opcintype
=> 'record' },
120 { opcmethod
=> 'hash', opcname
=> 'record_ops', opcfamily
=> 'hash/record_ops',
121 opcintype
=> 'record' },
122 { opcmethod
=> 'btree', opcname
=> 'record_image_ops',
123 opcfamily
=> 'btree/record_image_ops', opcintype
=> 'record',
125 { oid
=> '3126', oid_symbol
=> 'TEXT_BTREE_OPS_OID',
126 opcmethod
=> 'btree', opcname
=> 'text_ops', opcfamily
=> 'btree/text_ops',
127 opcintype
=> 'text' },
128 { opcmethod
=> 'hash', opcname
=> 'text_ops', opcfamily
=> 'hash/text_ops',
129 opcintype
=> 'text' },
130 { opcmethod
=> 'btree', opcname
=> 'time_ops', opcfamily
=> 'btree/time_ops',
131 opcintype
=> 'time' },
132 { opcmethod
=> 'hash', opcname
=> 'time_ops', opcfamily
=> 'hash/time_ops',
133 opcintype
=> 'time' },
134 { oid
=> '3127', oid_symbol
=> 'TIMESTAMPTZ_BTREE_OPS_OID',
135 opcmethod
=> 'btree', opcname
=> 'timestamptz_ops',
136 opcfamily
=> 'btree/datetime_ops', opcintype
=> 'timestamptz' },
137 { opcmethod
=> 'hash', opcname
=> 'timestamptz_ops',
138 opcfamily
=> 'hash/timestamptz_ops', opcintype
=> 'timestamptz' },
139 { opcmethod
=> 'btree', opcname
=> 'timetz_ops',
140 opcfamily
=> 'btree/timetz_ops', opcintype
=> 'timetz' },
141 { opcmethod
=> 'hash', opcname
=> 'timetz_ops', opcfamily
=> 'hash/timetz_ops',
142 opcintype
=> 'timetz' },
143 { opcmethod
=> 'btree', opcname
=> 'varbit_ops',
144 opcfamily
=> 'btree/varbit_ops', opcintype
=> 'varbit' },
145 { opcmethod
=> 'btree', opcname
=> 'varchar_ops', opcfamily
=> 'btree/text_ops',
146 opcintype
=> 'text', opcdefault
=> 'f' },
147 { opcmethod
=> 'hash', opcname
=> 'varchar_ops', opcfamily
=> 'hash/text_ops',
148 opcintype
=> 'text', opcdefault
=> 'f' },
149 { oid
=> '3128', oid_symbol
=> 'TIMESTAMP_BTREE_OPS_OID',
150 opcmethod
=> 'btree', opcname
=> 'timestamp_ops',
151 opcfamily
=> 'btree/datetime_ops', opcintype
=> 'timestamp' },
152 { opcmethod
=> 'hash', opcname
=> 'timestamp_ops',
153 opcfamily
=> 'hash/timestamp_ops', opcintype
=> 'timestamp' },
154 { oid
=> '4217', oid_symbol
=> 'TEXT_BTREE_PATTERN_OPS_OID',
155 opcmethod
=> 'btree', opcname
=> 'text_pattern_ops',
156 opcfamily
=> 'btree/text_pattern_ops', opcintype
=> 'text',
158 { oid
=> '4218', oid_symbol
=> 'VARCHAR_BTREE_PATTERN_OPS_OID',
159 opcmethod
=> 'btree', opcname
=> 'varchar_pattern_ops',
160 opcfamily
=> 'btree/text_pattern_ops', opcintype
=> 'text',
162 { oid
=> '4219', oid_symbol
=> 'BPCHAR_BTREE_PATTERN_OPS_OID',
163 opcmethod
=> 'btree', opcname
=> 'bpchar_pattern_ops',
164 opcfamily
=> 'btree/bpchar_pattern_ops', opcintype
=> 'bpchar',
166 { opcmethod
=> 'btree', opcname
=> 'money_ops', opcfamily
=> 'btree/money_ops',
167 opcintype
=> 'money' },
168 { opcmethod
=> 'hash', opcname
=> 'bool_ops', opcfamily
=> 'hash/bool_ops',
169 opcintype
=> 'bool' },
170 { opcmethod
=> 'hash', opcname
=> 'bytea_ops', opcfamily
=> 'hash/bytea_ops',
171 opcintype
=> 'bytea' },
172 { opcmethod
=> 'btree', opcname
=> 'tid_ops', opcfamily
=> 'btree/tid_ops',
173 opcintype
=> 'tid' },
174 { opcmethod
=> 'hash', opcname
=> 'xid_ops', opcfamily
=> 'hash/xid_ops',
175 opcintype
=> 'xid' },
176 { opcmethod
=> 'hash', opcname
=> 'xid8_ops', opcfamily
=> 'hash/xid8_ops',
177 opcintype
=> 'xid8' },
178 { opcmethod
=> 'btree', opcname
=> 'xid8_ops', opcfamily
=> 'btree/xid8_ops',
179 opcintype
=> 'xid8' },
180 { opcmethod
=> 'hash', opcname
=> 'cid_ops', opcfamily
=> 'hash/cid_ops',
181 opcintype
=> 'cid' },
182 { opcmethod
=> 'hash', opcname
=> 'tid_ops', opcfamily
=> 'hash/tid_ops',
183 opcintype
=> 'tid' },
184 { opcmethod
=> 'hash', opcname
=> 'text_pattern_ops',
185 opcfamily
=> 'hash/text_pattern_ops', opcintype
=> 'text',
187 { opcmethod
=> 'hash', opcname
=> 'varchar_pattern_ops',
188 opcfamily
=> 'hash/text_pattern_ops', opcintype
=> 'text',
190 { opcmethod
=> 'hash', opcname
=> 'bpchar_pattern_ops',
191 opcfamily
=> 'hash/bpchar_pattern_ops', opcintype
=> 'bpchar',
193 { opcmethod
=> 'hash', opcname
=> 'aclitem_ops',
194 opcfamily
=> 'hash/aclitem_ops', opcintype
=> 'aclitem' },
195 { opcmethod
=> 'gist', opcname
=> 'box_ops', opcfamily
=> 'gist/box_ops',
196 opcintype
=> 'box' },
197 { opcmethod
=> 'gist', opcname
=> 'point_ops', opcfamily
=> 'gist/point_ops',
198 opcintype
=> 'point', opckeytype
=> 'box' },
199 { opcmethod
=> 'gist', opcname
=> 'poly_ops', opcfamily
=> 'gist/poly_ops',
200 opcintype
=> 'polygon', opckeytype
=> 'box' },
201 { opcmethod
=> 'gist', opcname
=> 'circle_ops', opcfamily
=> 'gist/circle_ops',
202 opcintype
=> 'circle', opckeytype
=> 'box' },
203 { opcmethod
=> 'gin', opcname
=> 'array_ops', opcfamily
=> 'gin/array_ops',
204 opcintype
=> 'anyarray', opckeytype
=> 'anyelement' },
205 { opcmethod
=> 'btree', opcname
=> 'uuid_ops', opcfamily
=> 'btree/uuid_ops',
206 opcintype
=> 'uuid' },
207 { opcmethod
=> 'hash', opcname
=> 'uuid_ops', opcfamily
=> 'hash/uuid_ops',
208 opcintype
=> 'uuid' },
209 { opcmethod
=> 'btree', opcname
=> 'pg_lsn_ops',
210 opcfamily
=> 'btree/pg_lsn_ops', opcintype
=> 'pg_lsn' },
211 { opcmethod
=> 'hash', opcname
=> 'pg_lsn_ops', opcfamily
=> 'hash/pg_lsn_ops',
212 opcintype
=> 'pg_lsn' },
213 { opcmethod
=> 'btree', opcname
=> 'enum_ops', opcfamily
=> 'btree/enum_ops',
214 opcintype
=> 'anyenum' },
215 { opcmethod
=> 'hash', opcname
=> 'enum_ops', opcfamily
=> 'hash/enum_ops',
216 opcintype
=> 'anyenum' },
217 { opcmethod
=> 'btree', opcname
=> 'tsvector_ops',
218 opcfamily
=> 'btree/tsvector_ops', opcintype
=> 'tsvector' },
219 { opcmethod
=> 'gist', opcname
=> 'tsvector_ops',
220 opcfamily
=> 'gist/tsvector_ops', opcintype
=> 'tsvector',
221 opckeytype
=> 'gtsvector' },
222 { opcmethod
=> 'gin', opcname
=> 'tsvector_ops',
223 opcfamily
=> 'gin/tsvector_ops', opcintype
=> 'tsvector',
224 opckeytype
=> 'text' },
225 { opcmethod
=> 'btree', opcname
=> 'tsquery_ops',
226 opcfamily
=> 'btree/tsquery_ops', opcintype
=> 'tsquery' },
227 { opcmethod
=> 'gist', opcname
=> 'tsquery_ops',
228 opcfamily
=> 'gist/tsquery_ops', opcintype
=> 'tsquery',
229 opckeytype
=> 'int8' },
230 { opcmethod
=> 'btree', opcname
=> 'range_ops', opcfamily
=> 'btree/range_ops',
231 opcintype
=> 'anyrange' },
232 { opcmethod
=> 'hash', opcname
=> 'range_ops', opcfamily
=> 'hash/range_ops',
233 opcintype
=> 'anyrange' },
234 { opcmethod
=> 'gist', opcname
=> 'range_ops', opcfamily
=> 'gist/range_ops',
235 opcintype
=> 'anyrange' },
236 { opcmethod
=> 'spgist', opcname
=> 'range_ops',
237 opcfamily
=> 'spgist/range_ops', opcintype
=> 'anyrange' },
238 { opcmethod
=> 'btree', opcname
=> 'multirange_ops',
239 opcfamily
=> 'btree/multirange_ops', opcintype
=> 'anymultirange' },
240 { opcmethod
=> 'hash', opcname
=> 'multirange_ops',
241 opcfamily
=> 'hash/multirange_ops', opcintype
=> 'anymultirange' },
242 { opcmethod
=> 'gist', opcname
=> 'multirange_ops',
243 opcfamily
=> 'gist/multirange_ops', opcintype
=> 'anymultirange',
244 opckeytype
=> 'anyrange' },
245 { opcmethod
=> 'spgist', opcname
=> 'box_ops', opcfamily
=> 'spgist/box_ops',
246 opcintype
=> 'box' },
247 { opcmethod
=> 'spgist', opcname
=> 'quad_point_ops',
248 opcfamily
=> 'spgist/quad_point_ops', opcintype
=> 'point' },
249 { opcmethod
=> 'spgist', opcname
=> 'kd_point_ops',
250 opcfamily
=> 'spgist/kd_point_ops', opcintype
=> 'point', opcdefault
=> 'f' },
251 { opcmethod
=> 'spgist', opcname
=> 'text_ops', opcfamily
=> 'spgist/text_ops',
252 opcintype
=> 'text' },
253 { opcmethod
=> 'spgist', opcname
=> 'poly_ops', opcfamily
=> 'spgist/poly_ops',
254 opcintype
=> 'polygon', opckeytype
=> 'box' },
255 { opcmethod
=> 'btree', opcname
=> 'jsonb_ops', opcfamily
=> 'btree/jsonb_ops',
256 opcintype
=> 'jsonb' },
257 { opcmethod
=> 'hash', opcname
=> 'jsonb_ops', opcfamily
=> 'hash/jsonb_ops',
258 opcintype
=> 'jsonb' },
259 { opcmethod
=> 'gin', opcname
=> 'jsonb_ops', opcfamily
=> 'gin/jsonb_ops',
260 opcintype
=> 'jsonb', opckeytype
=> 'text' },
261 { opcmethod
=> 'gin', opcname
=> 'jsonb_path_ops',
262 opcfamily
=> 'gin/jsonb_path_ops', opcintype
=> 'jsonb', opcdefault
=> 'f',
263 opckeytype
=> 'int4' },
265 # BRIN operator classes
267 # no brin opclass for bool
269 { opcmethod
=> 'brin', opcname
=> 'bytea_minmax_ops',
270 opcfamily
=> 'brin/bytea_minmax_ops', opcintype
=> 'bytea',
271 opckeytype
=> 'bytea' },
272 { opcmethod
=> 'brin', opcname
=> 'bytea_bloom_ops',
273 opcfamily
=> 'brin/bytea_bloom_ops', opcintype
=> 'bytea', opcdefault
=> 'f',
274 opckeytype
=> 'bytea' },
275 { opcmethod
=> 'brin', opcname
=> 'char_minmax_ops',
276 opcfamily
=> 'brin/char_minmax_ops', opcintype
=> 'char',
277 opckeytype
=> 'char' },
278 { opcmethod
=> 'brin', opcname
=> 'char_bloom_ops',
279 opcfamily
=> 'brin/char_bloom_ops', opcintype
=> 'char', opcdefault
=> 'f',
280 opckeytype
=> 'char' },
281 { opcmethod
=> 'brin', opcname
=> 'name_minmax_ops',
282 opcfamily
=> 'brin/name_minmax_ops', opcintype
=> 'name',
283 opckeytype
=> 'name' },
284 { opcmethod
=> 'brin', opcname
=> 'name_bloom_ops',
285 opcfamily
=> 'brin/name_bloom_ops', opcintype
=> 'name', opcdefault
=> 'f',
286 opckeytype
=> 'name' },
287 { opcmethod
=> 'brin', opcname
=> 'int8_minmax_ops',
288 opcfamily
=> 'brin/integer_minmax_ops', opcintype
=> 'int8',
289 opckeytype
=> 'int8' },
290 { opcmethod
=> 'brin', opcname
=> 'int8_minmax_multi_ops',
291 opcfamily
=> 'brin/integer_minmax_multi_ops', opcintype
=> 'int8',
292 opcdefault
=> 'f', opckeytype
=> 'int8' },
293 { opcmethod
=> 'brin', opcname
=> 'int8_bloom_ops',
294 opcfamily
=> 'brin/integer_bloom_ops', opcintype
=> 'int8', opcdefault
=> 'f',
295 opckeytype
=> 'int8' },
296 { opcmethod
=> 'brin', opcname
=> 'int2_minmax_ops',
297 opcfamily
=> 'brin/integer_minmax_ops', opcintype
=> 'int2',
298 opckeytype
=> 'int2' },
299 { opcmethod
=> 'brin', opcname
=> 'int2_minmax_multi_ops',
300 opcfamily
=> 'brin/integer_minmax_multi_ops', opcintype
=> 'int2',
301 opcdefault
=> 'f', opckeytype
=> 'int2' },
302 { opcmethod
=> 'brin', opcname
=> 'int2_bloom_ops',
303 opcfamily
=> 'brin/integer_bloom_ops', opcintype
=> 'int2', opcdefault
=> 'f',
304 opckeytype
=> 'int2' },
305 { opcmethod
=> 'brin', opcname
=> 'int4_minmax_ops',
306 opcfamily
=> 'brin/integer_minmax_ops', opcintype
=> 'int4',
307 opckeytype
=> 'int4' },
308 { opcmethod
=> 'brin', opcname
=> 'int4_minmax_multi_ops',
309 opcfamily
=> 'brin/integer_minmax_multi_ops', opcintype
=> 'int4',
310 opcdefault
=> 'f', opckeytype
=> 'int4' },
311 { opcmethod
=> 'brin', opcname
=> 'int4_bloom_ops',
312 opcfamily
=> 'brin/integer_bloom_ops', opcintype
=> 'int4', opcdefault
=> 'f',
313 opckeytype
=> 'int4' },
314 { opcmethod
=> 'brin', opcname
=> 'text_minmax_ops',
315 opcfamily
=> 'brin/text_minmax_ops', opcintype
=> 'text',
316 opckeytype
=> 'text' },
317 { opcmethod
=> 'brin', opcname
=> 'text_bloom_ops',
318 opcfamily
=> 'brin/text_bloom_ops', opcintype
=> 'text', opcdefault
=> 'f',
319 opckeytype
=> 'text' },
320 { opcmethod
=> 'brin', opcname
=> 'oid_minmax_ops',
321 opcfamily
=> 'brin/oid_minmax_ops', opcintype
=> 'oid', opckeytype
=> 'oid' },
322 { opcmethod
=> 'brin', opcname
=> 'oid_minmax_multi_ops',
323 opcfamily
=> 'brin/oid_minmax_multi_ops', opcintype
=> 'oid',
324 opcdefault
=> 'f', opckeytype
=> 'oid' },
325 { opcmethod
=> 'brin', opcname
=> 'oid_bloom_ops',
326 opcfamily
=> 'brin/oid_bloom_ops', opcintype
=> 'oid', opcdefault
=> 'f',
327 opckeytype
=> 'oid' },
328 { opcmethod
=> 'brin', opcname
=> 'tid_minmax_ops',
329 opcfamily
=> 'brin/tid_minmax_ops', opcintype
=> 'tid', opckeytype
=> 'tid' },
330 { opcmethod
=> 'brin', opcname
=> 'tid_bloom_ops',
331 opcfamily
=> 'brin/tid_bloom_ops', opcintype
=> 'tid', opcdefault
=> 'f',
332 opckeytype
=> 'tid' },
333 { opcmethod
=> 'brin', opcname
=> 'tid_minmax_multi_ops',
334 opcfamily
=> 'brin/tid_minmax_multi_ops', opcintype
=> 'tid',
335 opcdefault
=> 'f', opckeytype
=> 'tid' },
336 { opcmethod
=> 'brin', opcname
=> 'float4_minmax_ops',
337 opcfamily
=> 'brin/float_minmax_ops', opcintype
=> 'float4',
338 opckeytype
=> 'float4' },
339 { opcmethod
=> 'brin', opcname
=> 'float4_minmax_multi_ops',
340 opcfamily
=> 'brin/float_minmax_multi_ops', opcintype
=> 'float4',
341 opcdefault
=> 'f', opckeytype
=> 'float4' },
342 { opcmethod
=> 'brin', opcname
=> 'float4_bloom_ops',
343 opcfamily
=> 'brin/float_bloom_ops', opcintype
=> 'float4', opcdefault
=> 'f',
344 opckeytype
=> 'float4' },
345 { opcmethod
=> 'brin', opcname
=> 'float8_minmax_ops',
346 opcfamily
=> 'brin/float_minmax_ops', opcintype
=> 'float8',
347 opckeytype
=> 'float8' },
348 { opcmethod
=> 'brin', opcname
=> 'float8_minmax_multi_ops',
349 opcfamily
=> 'brin/float_minmax_multi_ops', opcintype
=> 'float8',
350 opcdefault
=> 'f', opckeytype
=> 'float8' },
351 { opcmethod
=> 'brin', opcname
=> 'float8_bloom_ops',
352 opcfamily
=> 'brin/float_bloom_ops', opcintype
=> 'float8', opcdefault
=> 'f',
353 opckeytype
=> 'float8' },
354 { opcmethod
=> 'brin', opcname
=> 'macaddr_minmax_ops',
355 opcfamily
=> 'brin/macaddr_minmax_ops', opcintype
=> 'macaddr',
356 opckeytype
=> 'macaddr' },
357 { opcmethod
=> 'brin', opcname
=> 'macaddr_minmax_multi_ops',
358 opcfamily
=> 'brin/macaddr_minmax_multi_ops', opcintype
=> 'macaddr',
359 opcdefault
=> 'f', opckeytype
=> 'macaddr' },
360 { opcmethod
=> 'brin', opcname
=> 'macaddr_bloom_ops',
361 opcfamily
=> 'brin/macaddr_bloom_ops', opcintype
=> 'macaddr',
362 opcdefault
=> 'f', opckeytype
=> 'macaddr' },
363 { opcmethod
=> 'brin', opcname
=> 'macaddr8_minmax_ops',
364 opcfamily
=> 'brin/macaddr8_minmax_ops', opcintype
=> 'macaddr8',
365 opckeytype
=> 'macaddr8' },
366 { opcmethod
=> 'brin', opcname
=> 'macaddr8_minmax_multi_ops',
367 opcfamily
=> 'brin/macaddr8_minmax_multi_ops', opcintype
=> 'macaddr8',
368 opcdefault
=> 'f', opckeytype
=> 'macaddr8' },
369 { opcmethod
=> 'brin', opcname
=> 'macaddr8_bloom_ops',
370 opcfamily
=> 'brin/macaddr8_bloom_ops', opcintype
=> 'macaddr8',
371 opcdefault
=> 'f', opckeytype
=> 'macaddr8' },
372 { opcmethod
=> 'brin', opcname
=> 'inet_minmax_ops',
373 opcfamily
=> 'brin/network_minmax_ops', opcintype
=> 'inet',
374 opcdefault
=> 'f', opckeytype
=> 'inet' },
375 { opcmethod
=> 'brin', opcname
=> 'inet_minmax_multi_ops',
376 opcfamily
=> 'brin/network_minmax_multi_ops', opcintype
=> 'inet',
377 opcdefault
=> 'f', opckeytype
=> 'inet' },
378 { opcmethod
=> 'brin', opcname
=> 'inet_bloom_ops',
379 opcfamily
=> 'brin/network_bloom_ops', opcintype
=> 'inet', opcdefault
=> 'f',
380 opckeytype
=> 'inet' },
381 { opcmethod
=> 'brin', opcname
=> 'inet_inclusion_ops',
382 opcfamily
=> 'brin/network_inclusion_ops', opcintype
=> 'inet',
383 opckeytype
=> 'inet' },
384 { opcmethod
=> 'brin', opcname
=> 'bpchar_minmax_ops',
385 opcfamily
=> 'brin/bpchar_minmax_ops', opcintype
=> 'bpchar',
386 opckeytype
=> 'bpchar' },
387 { opcmethod
=> 'brin', opcname
=> 'bpchar_bloom_ops',
388 opcfamily
=> 'brin/bpchar_bloom_ops', opcintype
=> 'bpchar',
389 opcdefault
=> 'f', opckeytype
=> 'bpchar' },
390 { opcmethod
=> 'brin', opcname
=> 'time_minmax_ops',
391 opcfamily
=> 'brin/time_minmax_ops', opcintype
=> 'time',
392 opckeytype
=> 'time' },
393 { opcmethod
=> 'brin', opcname
=> 'time_minmax_multi_ops',
394 opcfamily
=> 'brin/time_minmax_multi_ops', opcintype
=> 'time',
395 opcdefault
=> 'f', opckeytype
=> 'time' },
396 { opcmethod
=> 'brin', opcname
=> 'time_bloom_ops',
397 opcfamily
=> 'brin/time_bloom_ops', opcintype
=> 'time', opcdefault
=> 'f',
398 opckeytype
=> 'time' },
399 { opcmethod
=> 'brin', opcname
=> 'date_minmax_ops',
400 opcfamily
=> 'brin/datetime_minmax_ops', opcintype
=> 'date',
401 opckeytype
=> 'date' },
402 { opcmethod
=> 'brin', opcname
=> 'date_minmax_multi_ops',
403 opcfamily
=> 'brin/datetime_minmax_multi_ops', opcintype
=> 'date',
404 opcdefault
=> 'f', opckeytype
=> 'date' },
405 { opcmethod
=> 'brin', opcname
=> 'date_bloom_ops',
406 opcfamily
=> 'brin/datetime_bloom_ops', opcintype
=> 'date',
407 opcdefault
=> 'f', opckeytype
=> 'date' },
408 { opcmethod
=> 'brin', opcname
=> 'timestamp_minmax_ops',
409 opcfamily
=> 'brin/datetime_minmax_ops', opcintype
=> 'timestamp',
410 opckeytype
=> 'timestamp' },
411 { opcmethod
=> 'brin', opcname
=> 'timestamp_minmax_multi_ops',
412 opcfamily
=> 'brin/datetime_minmax_multi_ops', opcintype
=> 'timestamp',
413 opcdefault
=> 'f', opckeytype
=> 'timestamp' },
414 { opcmethod
=> 'brin', opcname
=> 'timestamp_bloom_ops',
415 opcfamily
=> 'brin/datetime_bloom_ops', opcintype
=> 'timestamp',
416 opcdefault
=> 'f', opckeytype
=> 'timestamp' },
417 { opcmethod
=> 'brin', opcname
=> 'timestamptz_minmax_ops',
418 opcfamily
=> 'brin/datetime_minmax_ops', opcintype
=> 'timestamptz',
419 opckeytype
=> 'timestamptz' },
420 { opcmethod
=> 'brin', opcname
=> 'timestamptz_minmax_multi_ops',
421 opcfamily
=> 'brin/datetime_minmax_multi_ops', opcintype
=> 'timestamptz',
422 opcdefault
=> 'f', opckeytype
=> 'timestamptz' },
423 { opcmethod
=> 'brin', opcname
=> 'timestamptz_bloom_ops',
424 opcfamily
=> 'brin/datetime_bloom_ops', opcintype
=> 'timestamptz',
425 opcdefault
=> 'f', opckeytype
=> 'timestamptz' },
426 { opcmethod
=> 'brin', opcname
=> 'interval_minmax_ops',
427 opcfamily
=> 'brin/interval_minmax_ops', opcintype
=> 'interval',
428 opckeytype
=> 'interval' },
429 { opcmethod
=> 'brin', opcname
=> 'interval_minmax_multi_ops',
430 opcfamily
=> 'brin/interval_minmax_multi_ops', opcintype
=> 'interval',
431 opcdefault
=> 'f', opckeytype
=> 'interval' },
432 { opcmethod
=> 'brin', opcname
=> 'interval_bloom_ops',
433 opcfamily
=> 'brin/interval_bloom_ops', opcintype
=> 'interval',
434 opcdefault
=> 'f', opckeytype
=> 'interval' },
435 { opcmethod
=> 'brin', opcname
=> 'timetz_minmax_ops',
436 opcfamily
=> 'brin/timetz_minmax_ops', opcintype
=> 'timetz',
437 opckeytype
=> 'timetz' },
438 { opcmethod
=> 'brin', opcname
=> 'timetz_minmax_multi_ops',
439 opcfamily
=> 'brin/timetz_minmax_multi_ops', opcintype
=> 'timetz',
440 opcdefault
=> 'f', opckeytype
=> 'timetz' },
441 { opcmethod
=> 'brin', opcname
=> 'timetz_bloom_ops',
442 opcfamily
=> 'brin/timetz_bloom_ops', opcintype
=> 'timetz',
443 opcdefault
=> 'f', opckeytype
=> 'timetz' },
444 { opcmethod
=> 'brin', opcname
=> 'bit_minmax_ops',
445 opcfamily
=> 'brin/bit_minmax_ops', opcintype
=> 'bit', opckeytype
=> 'bit' },
446 { opcmethod
=> 'brin', opcname
=> 'varbit_minmax_ops',
447 opcfamily
=> 'brin/varbit_minmax_ops', opcintype
=> 'varbit',
448 opckeytype
=> 'varbit' },
449 { opcmethod
=> 'brin', opcname
=> 'numeric_minmax_ops',
450 opcfamily
=> 'brin/numeric_minmax_ops', opcintype
=> 'numeric',
451 opckeytype
=> 'numeric' },
452 { opcmethod
=> 'brin', opcname
=> 'numeric_minmax_multi_ops',
453 opcfamily
=> 'brin/numeric_minmax_multi_ops', opcintype
=> 'numeric',
454 opcdefault
=> 'f', opckeytype
=> 'numeric' },
455 { opcmethod
=> 'brin', opcname
=> 'numeric_bloom_ops',
456 opcfamily
=> 'brin/numeric_bloom_ops', opcintype
=> 'numeric',
457 opcdefault
=> 'f', opckeytype
=> 'numeric' },
459 # no brin opclass for record, anyarray
461 { opcmethod
=> 'brin', opcname
=> 'uuid_minmax_ops',
462 opcfamily
=> 'brin/uuid_minmax_ops', opcintype
=> 'uuid',
463 opckeytype
=> 'uuid' },
464 { opcmethod
=> 'brin', opcname
=> 'uuid_minmax_multi_ops',
465 opcfamily
=> 'brin/uuid_minmax_multi_ops', opcintype
=> 'uuid',
466 opcdefault
=> 'f', opckeytype
=> 'uuid' },
467 { opcmethod
=> 'brin', opcname
=> 'uuid_bloom_ops',
468 opcfamily
=> 'brin/uuid_bloom_ops', opcintype
=> 'uuid', opcdefault
=> 'f',
469 opckeytype
=> 'uuid' },
470 { opcmethod
=> 'brin', opcname
=> 'range_inclusion_ops',
471 opcfamily
=> 'brin/range_inclusion_ops', opcintype
=> 'anyrange',
472 opckeytype
=> 'anyrange' },
473 { opcmethod
=> 'brin', opcname
=> 'pg_lsn_minmax_ops',
474 opcfamily
=> 'brin/pg_lsn_minmax_ops', opcintype
=> 'pg_lsn',
475 opckeytype
=> 'pg_lsn' },
476 { opcmethod
=> 'brin', opcname
=> 'pg_lsn_minmax_multi_ops',
477 opcfamily
=> 'brin/pg_lsn_minmax_multi_ops', opcintype
=> 'pg_lsn',
478 opcdefault
=> 'f', opckeytype
=> 'pg_lsn' },
479 { opcmethod
=> 'brin', opcname
=> 'pg_lsn_bloom_ops',
480 opcfamily
=> 'brin/pg_lsn_bloom_ops', opcintype
=> 'pg_lsn',
481 opcdefault
=> 'f', opckeytype
=> 'pg_lsn' },
483 # no brin opclass for enum, tsvector, tsquery, jsonb
485 { opcmethod
=> 'brin', opcname
=> 'box_inclusion_ops',
486 opcfamily
=> 'brin/box_inclusion_ops', opcintype
=> 'box',
487 opckeytype
=> 'box' },
489 # no brin opclass for the geometric types except box