pg_amcheck: Fix test failure on Windows with non-existing role
[pgsql.git] / src / include / catalog / pg_amop.dat
blob2a693cfc31c6f125ae359b6b246d739099a80dc1
1 #----------------------------------------------------------------------
3 # pg_amop.dat
4 # Initial contents of the pg_amop 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_amop.dat
11 #----------------------------------------------------------------------
15 # btree integer_ops
17 # default operators int2
18 { amopfamily => 'btree/integer_ops', amoplefttype => 'int2',
19 amoprighttype => 'int2', amopstrategy => '1', amopopr => '<(int2,int2)',
20 amopmethod => 'btree' },
21 { amopfamily => 'btree/integer_ops', amoplefttype => 'int2',
22 amoprighttype => 'int2', amopstrategy => '2', amopopr => '<=(int2,int2)',
23 amopmethod => 'btree' },
24 { amopfamily => 'btree/integer_ops', amoplefttype => 'int2',
25 amoprighttype => 'int2', amopstrategy => '3', amopopr => '=(int2,int2)',
26 amopmethod => 'btree' },
27 { amopfamily => 'btree/integer_ops', amoplefttype => 'int2',
28 amoprighttype => 'int2', amopstrategy => '4', amopopr => '>=(int2,int2)',
29 amopmethod => 'btree' },
30 { amopfamily => 'btree/integer_ops', amoplefttype => 'int2',
31 amoprighttype => 'int2', amopstrategy => '5', amopopr => '>(int2,int2)',
32 amopmethod => 'btree' },
34 # crosstype operators int24
35 { amopfamily => 'btree/integer_ops', amoplefttype => 'int2',
36 amoprighttype => 'int4', amopstrategy => '1', amopopr => '<(int2,int4)',
37 amopmethod => 'btree' },
38 { amopfamily => 'btree/integer_ops', amoplefttype => 'int2',
39 amoprighttype => 'int4', amopstrategy => '2', amopopr => '<=(int2,int4)',
40 amopmethod => 'btree' },
41 { amopfamily => 'btree/integer_ops', amoplefttype => 'int2',
42 amoprighttype => 'int4', amopstrategy => '3', amopopr => '=(int2,int4)',
43 amopmethod => 'btree' },
44 { amopfamily => 'btree/integer_ops', amoplefttype => 'int2',
45 amoprighttype => 'int4', amopstrategy => '4', amopopr => '>=(int2,int4)',
46 amopmethod => 'btree' },
47 { amopfamily => 'btree/integer_ops', amoplefttype => 'int2',
48 amoprighttype => 'int4', amopstrategy => '5', amopopr => '>(int2,int4)',
49 amopmethod => 'btree' },
51 # crosstype operators int28
52 { amopfamily => 'btree/integer_ops', amoplefttype => 'int2',
53 amoprighttype => 'int8', amopstrategy => '1', amopopr => '<(int2,int8)',
54 amopmethod => 'btree' },
55 { amopfamily => 'btree/integer_ops', amoplefttype => 'int2',
56 amoprighttype => 'int8', amopstrategy => '2', amopopr => '<=(int2,int8)',
57 amopmethod => 'btree' },
58 { amopfamily => 'btree/integer_ops', amoplefttype => 'int2',
59 amoprighttype => 'int8', amopstrategy => '3', amopopr => '=(int2,int8)',
60 amopmethod => 'btree' },
61 { amopfamily => 'btree/integer_ops', amoplefttype => 'int2',
62 amoprighttype => 'int8', amopstrategy => '4', amopopr => '>=(int2,int8)',
63 amopmethod => 'btree' },
64 { amopfamily => 'btree/integer_ops', amoplefttype => 'int2',
65 amoprighttype => 'int8', amopstrategy => '5', amopopr => '>(int2,int8)',
66 amopmethod => 'btree' },
68 # default operators int4
69 { amopfamily => 'btree/integer_ops', amoplefttype => 'int4',
70 amoprighttype => 'int4', amopstrategy => '1', amopopr => '<(int4,int4)',
71 amopmethod => 'btree' },
72 { amopfamily => 'btree/integer_ops', amoplefttype => 'int4',
73 amoprighttype => 'int4', amopstrategy => '2', amopopr => '<=(int4,int4)',
74 amopmethod => 'btree' },
75 { amopfamily => 'btree/integer_ops', amoplefttype => 'int4',
76 amoprighttype => 'int4', amopstrategy => '3', amopopr => '=(int4,int4)',
77 amopmethod => 'btree' },
78 { amopfamily => 'btree/integer_ops', amoplefttype => 'int4',
79 amoprighttype => 'int4', amopstrategy => '4', amopopr => '>=(int4,int4)',
80 amopmethod => 'btree' },
81 { amopfamily => 'btree/integer_ops', amoplefttype => 'int4',
82 amoprighttype => 'int4', amopstrategy => '5', amopopr => '>(int4,int4)',
83 amopmethod => 'btree' },
85 # crosstype operators int42
86 { amopfamily => 'btree/integer_ops', amoplefttype => 'int4',
87 amoprighttype => 'int2', amopstrategy => '1', amopopr => '<(int4,int2)',
88 amopmethod => 'btree' },
89 { amopfamily => 'btree/integer_ops', amoplefttype => 'int4',
90 amoprighttype => 'int2', amopstrategy => '2', amopopr => '<=(int4,int2)',
91 amopmethod => 'btree' },
92 { amopfamily => 'btree/integer_ops', amoplefttype => 'int4',
93 amoprighttype => 'int2', amopstrategy => '3', amopopr => '=(int4,int2)',
94 amopmethod => 'btree' },
95 { amopfamily => 'btree/integer_ops', amoplefttype => 'int4',
96 amoprighttype => 'int2', amopstrategy => '4', amopopr => '>=(int4,int2)',
97 amopmethod => 'btree' },
98 { amopfamily => 'btree/integer_ops', amoplefttype => 'int4',
99 amoprighttype => 'int2', amopstrategy => '5', amopopr => '>(int4,int2)',
100 amopmethod => 'btree' },
102 # crosstype operators int48
103 { amopfamily => 'btree/integer_ops', amoplefttype => 'int4',
104 amoprighttype => 'int8', amopstrategy => '1', amopopr => '<(int4,int8)',
105 amopmethod => 'btree' },
106 { amopfamily => 'btree/integer_ops', amoplefttype => 'int4',
107 amoprighttype => 'int8', amopstrategy => '2', amopopr => '<=(int4,int8)',
108 amopmethod => 'btree' },
109 { amopfamily => 'btree/integer_ops', amoplefttype => 'int4',
110 amoprighttype => 'int8', amopstrategy => '3', amopopr => '=(int4,int8)',
111 amopmethod => 'btree' },
112 { amopfamily => 'btree/integer_ops', amoplefttype => 'int4',
113 amoprighttype => 'int8', amopstrategy => '4', amopopr => '>=(int4,int8)',
114 amopmethod => 'btree' },
115 { amopfamily => 'btree/integer_ops', amoplefttype => 'int4',
116 amoprighttype => 'int8', amopstrategy => '5', amopopr => '>(int4,int8)',
117 amopmethod => 'btree' },
119 # default operators int8
120 { amopfamily => 'btree/integer_ops', amoplefttype => 'int8',
121 amoprighttype => 'int8', amopstrategy => '1', amopopr => '<(int8,int8)',
122 amopmethod => 'btree' },
123 { amopfamily => 'btree/integer_ops', amoplefttype => 'int8',
124 amoprighttype => 'int8', amopstrategy => '2', amopopr => '<=(int8,int8)',
125 amopmethod => 'btree' },
126 { amopfamily => 'btree/integer_ops', amoplefttype => 'int8',
127 amoprighttype => 'int8', amopstrategy => '3', amopopr => '=(int8,int8)',
128 amopmethod => 'btree' },
129 { amopfamily => 'btree/integer_ops', amoplefttype => 'int8',
130 amoprighttype => 'int8', amopstrategy => '4', amopopr => '>=(int8,int8)',
131 amopmethod => 'btree' },
132 { amopfamily => 'btree/integer_ops', amoplefttype => 'int8',
133 amoprighttype => 'int8', amopstrategy => '5', amopopr => '>(int8,int8)',
134 amopmethod => 'btree' },
136 # crosstype operators int82
137 { amopfamily => 'btree/integer_ops', amoplefttype => 'int8',
138 amoprighttype => 'int2', amopstrategy => '1', amopopr => '<(int8,int2)',
139 amopmethod => 'btree' },
140 { amopfamily => 'btree/integer_ops', amoplefttype => 'int8',
141 amoprighttype => 'int2', amopstrategy => '2', amopopr => '<=(int8,int2)',
142 amopmethod => 'btree' },
143 { amopfamily => 'btree/integer_ops', amoplefttype => 'int8',
144 amoprighttype => 'int2', amopstrategy => '3', amopopr => '=(int8,int2)',
145 amopmethod => 'btree' },
146 { amopfamily => 'btree/integer_ops', amoplefttype => 'int8',
147 amoprighttype => 'int2', amopstrategy => '4', amopopr => '>=(int8,int2)',
148 amopmethod => 'btree' },
149 { amopfamily => 'btree/integer_ops', amoplefttype => 'int8',
150 amoprighttype => 'int2', amopstrategy => '5', amopopr => '>(int8,int2)',
151 amopmethod => 'btree' },
153 # crosstype operators int84
154 { amopfamily => 'btree/integer_ops', amoplefttype => 'int8',
155 amoprighttype => 'int4', amopstrategy => '1', amopopr => '<(int8,int4)',
156 amopmethod => 'btree' },
157 { amopfamily => 'btree/integer_ops', amoplefttype => 'int8',
158 amoprighttype => 'int4', amopstrategy => '2', amopopr => '<=(int8,int4)',
159 amopmethod => 'btree' },
160 { amopfamily => 'btree/integer_ops', amoplefttype => 'int8',
161 amoprighttype => 'int4', amopstrategy => '3', amopopr => '=(int8,int4)',
162 amopmethod => 'btree' },
163 { amopfamily => 'btree/integer_ops', amoplefttype => 'int8',
164 amoprighttype => 'int4', amopstrategy => '4', amopopr => '>=(int8,int4)',
165 amopmethod => 'btree' },
166 { amopfamily => 'btree/integer_ops', amoplefttype => 'int8',
167 amoprighttype => 'int4', amopstrategy => '5', amopopr => '>(int8,int4)',
168 amopmethod => 'btree' },
170 # btree oid_ops
172 { amopfamily => 'btree/oid_ops', amoplefttype => 'oid', amoprighttype => 'oid',
173 amopstrategy => '1', amopopr => '<(oid,oid)', amopmethod => 'btree' },
174 { amopfamily => 'btree/oid_ops', amoplefttype => 'oid', amoprighttype => 'oid',
175 amopstrategy => '2', amopopr => '<=(oid,oid)', amopmethod => 'btree' },
176 { amopfamily => 'btree/oid_ops', amoplefttype => 'oid', amoprighttype => 'oid',
177 amopstrategy => '3', amopopr => '=(oid,oid)', amopmethod => 'btree' },
178 { amopfamily => 'btree/oid_ops', amoplefttype => 'oid', amoprighttype => 'oid',
179 amopstrategy => '4', amopopr => '>=(oid,oid)', amopmethod => 'btree' },
180 { amopfamily => 'btree/oid_ops', amoplefttype => 'oid', amoprighttype => 'oid',
181 amopstrategy => '5', amopopr => '>(oid,oid)', amopmethod => 'btree' },
183 # btree xid8_ops
185 { amopfamily => 'btree/xid8_ops', amoplefttype => 'xid8',
186 amoprighttype => 'xid8', amopstrategy => '1', amopopr => '<(xid8,xid8)',
187 amopmethod => 'btree' },
188 { amopfamily => 'btree/xid8_ops', amoplefttype => 'xid8',
189 amoprighttype => 'xid8', amopstrategy => '2', amopopr => '<=(xid8,xid8)',
190 amopmethod => 'btree' },
191 { amopfamily => 'btree/xid8_ops', amoplefttype => 'xid8',
192 amoprighttype => 'xid8', amopstrategy => '3', amopopr => '=(xid8,xid8)',
193 amopmethod => 'btree' },
194 { amopfamily => 'btree/xid8_ops', amoplefttype => 'xid8',
195 amoprighttype => 'xid8', amopstrategy => '4', amopopr => '>=(xid8,xid8)',
196 amopmethod => 'btree' },
197 { amopfamily => 'btree/xid8_ops', amoplefttype => 'xid8',
198 amoprighttype => 'xid8', amopstrategy => '5', amopopr => '>(xid8,xid8)',
199 amopmethod => 'btree' },
201 # btree tid_ops
203 { amopfamily => 'btree/tid_ops', amoplefttype => 'tid', amoprighttype => 'tid',
204 amopstrategy => '1', amopopr => '<(tid,tid)', amopmethod => 'btree' },
205 { amopfamily => 'btree/tid_ops', amoplefttype => 'tid', amoprighttype => 'tid',
206 amopstrategy => '2', amopopr => '<=(tid,tid)', amopmethod => 'btree' },
207 { amopfamily => 'btree/tid_ops', amoplefttype => 'tid', amoprighttype => 'tid',
208 amopstrategy => '3', amopopr => '=(tid,tid)', amopmethod => 'btree' },
209 { amopfamily => 'btree/tid_ops', amoplefttype => 'tid', amoprighttype => 'tid',
210 amopstrategy => '4', amopopr => '>=(tid,tid)', amopmethod => 'btree' },
211 { amopfamily => 'btree/tid_ops', amoplefttype => 'tid', amoprighttype => 'tid',
212 amopstrategy => '5', amopopr => '>(tid,tid)', amopmethod => 'btree' },
214 # btree oidvector_ops
216 { amopfamily => 'btree/oidvector_ops', amoplefttype => 'oidvector',
217 amoprighttype => 'oidvector', amopstrategy => '1',
218 amopopr => '<(oidvector,oidvector)', amopmethod => 'btree' },
219 { amopfamily => 'btree/oidvector_ops', amoplefttype => 'oidvector',
220 amoprighttype => 'oidvector', amopstrategy => '2',
221 amopopr => '<=(oidvector,oidvector)', amopmethod => 'btree' },
222 { amopfamily => 'btree/oidvector_ops', amoplefttype => 'oidvector',
223 amoprighttype => 'oidvector', amopstrategy => '3',
224 amopopr => '=(oidvector,oidvector)', amopmethod => 'btree' },
225 { amopfamily => 'btree/oidvector_ops', amoplefttype => 'oidvector',
226 amoprighttype => 'oidvector', amopstrategy => '4',
227 amopopr => '>=(oidvector,oidvector)', amopmethod => 'btree' },
228 { amopfamily => 'btree/oidvector_ops', amoplefttype => 'oidvector',
229 amoprighttype => 'oidvector', amopstrategy => '5',
230 amopopr => '>(oidvector,oidvector)', amopmethod => 'btree' },
232 # btree float_ops
234 # default operators float4
235 { amopfamily => 'btree/float_ops', amoplefttype => 'float4',
236 amoprighttype => 'float4', amopstrategy => '1', amopopr => '<(float4,float4)',
237 amopmethod => 'btree' },
238 { amopfamily => 'btree/float_ops', amoplefttype => 'float4',
239 amoprighttype => 'float4', amopstrategy => '2',
240 amopopr => '<=(float4,float4)', amopmethod => 'btree' },
241 { amopfamily => 'btree/float_ops', amoplefttype => 'float4',
242 amoprighttype => 'float4', amopstrategy => '3', amopopr => '=(float4,float4)',
243 amopmethod => 'btree' },
244 { amopfamily => 'btree/float_ops', amoplefttype => 'float4',
245 amoprighttype => 'float4', amopstrategy => '4',
246 amopopr => '>=(float4,float4)', amopmethod => 'btree' },
247 { amopfamily => 'btree/float_ops', amoplefttype => 'float4',
248 amoprighttype => 'float4', amopstrategy => '5', amopopr => '>(float4,float4)',
249 amopmethod => 'btree' },
251 # crosstype operators float48
252 { amopfamily => 'btree/float_ops', amoplefttype => 'float4',
253 amoprighttype => 'float8', amopstrategy => '1', amopopr => '<(float4,float8)',
254 amopmethod => 'btree' },
255 { amopfamily => 'btree/float_ops', amoplefttype => 'float4',
256 amoprighttype => 'float8', amopstrategy => '2',
257 amopopr => '<=(float4,float8)', amopmethod => 'btree' },
258 { amopfamily => 'btree/float_ops', amoplefttype => 'float4',
259 amoprighttype => 'float8', amopstrategy => '3', amopopr => '=(float4,float8)',
260 amopmethod => 'btree' },
261 { amopfamily => 'btree/float_ops', amoplefttype => 'float4',
262 amoprighttype => 'float8', amopstrategy => '4',
263 amopopr => '>=(float4,float8)', amopmethod => 'btree' },
264 { amopfamily => 'btree/float_ops', amoplefttype => 'float4',
265 amoprighttype => 'float8', amopstrategy => '5', amopopr => '>(float4,float8)',
266 amopmethod => 'btree' },
268 # default operators float8
269 { amopfamily => 'btree/float_ops', amoplefttype => 'float8',
270 amoprighttype => 'float8', amopstrategy => '1', amopopr => '<(float8,float8)',
271 amopmethod => 'btree' },
272 { amopfamily => 'btree/float_ops', amoplefttype => 'float8',
273 amoprighttype => 'float8', amopstrategy => '2',
274 amopopr => '<=(float8,float8)', amopmethod => 'btree' },
275 { amopfamily => 'btree/float_ops', amoplefttype => 'float8',
276 amoprighttype => 'float8', amopstrategy => '3', amopopr => '=(float8,float8)',
277 amopmethod => 'btree' },
278 { amopfamily => 'btree/float_ops', amoplefttype => 'float8',
279 amoprighttype => 'float8', amopstrategy => '4',
280 amopopr => '>=(float8,float8)', amopmethod => 'btree' },
281 { amopfamily => 'btree/float_ops', amoplefttype => 'float8',
282 amoprighttype => 'float8', amopstrategy => '5', amopopr => '>(float8,float8)',
283 amopmethod => 'btree' },
285 # crosstype operators float84
286 { amopfamily => 'btree/float_ops', amoplefttype => 'float8',
287 amoprighttype => 'float4', amopstrategy => '1', amopopr => '<(float8,float4)',
288 amopmethod => 'btree' },
289 { amopfamily => 'btree/float_ops', amoplefttype => 'float8',
290 amoprighttype => 'float4', amopstrategy => '2',
291 amopopr => '<=(float8,float4)', amopmethod => 'btree' },
292 { amopfamily => 'btree/float_ops', amoplefttype => 'float8',
293 amoprighttype => 'float4', amopstrategy => '3', amopopr => '=(float8,float4)',
294 amopmethod => 'btree' },
295 { amopfamily => 'btree/float_ops', amoplefttype => 'float8',
296 amoprighttype => 'float4', amopstrategy => '4',
297 amopopr => '>=(float8,float4)', amopmethod => 'btree' },
298 { amopfamily => 'btree/float_ops', amoplefttype => 'float8',
299 amoprighttype => 'float4', amopstrategy => '5', amopopr => '>(float8,float4)',
300 amopmethod => 'btree' },
302 # btree char_ops
304 { amopfamily => 'btree/char_ops', amoplefttype => 'char',
305 amoprighttype => 'char', amopstrategy => '1', amopopr => '<(char,char)',
306 amopmethod => 'btree' },
307 { amopfamily => 'btree/char_ops', amoplefttype => 'char',
308 amoprighttype => 'char', amopstrategy => '2', amopopr => '<=(char,char)',
309 amopmethod => 'btree' },
310 { amopfamily => 'btree/char_ops', amoplefttype => 'char',
311 amoprighttype => 'char', amopstrategy => '3', amopopr => '=(char,char)',
312 amopmethod => 'btree' },
313 { amopfamily => 'btree/char_ops', amoplefttype => 'char',
314 amoprighttype => 'char', amopstrategy => '4', amopopr => '>=(char,char)',
315 amopmethod => 'btree' },
316 { amopfamily => 'btree/char_ops', amoplefttype => 'char',
317 amoprighttype => 'char', amopstrategy => '5', amopopr => '>(char,char)',
318 amopmethod => 'btree' },
320 # btree text_ops
322 { amopfamily => 'btree/text_ops', amoplefttype => 'text',
323 amoprighttype => 'text', amopstrategy => '1', amopopr => '<(text,text)',
324 amopmethod => 'btree' },
325 { amopfamily => 'btree/text_ops', amoplefttype => 'text',
326 amoprighttype => 'text', amopstrategy => '2', amopopr => '<=(text,text)',
327 amopmethod => 'btree' },
328 { amopfamily => 'btree/text_ops', amoplefttype => 'text',
329 amoprighttype => 'text', amopstrategy => '3', amopopr => '=(text,text)',
330 amopmethod => 'btree' },
331 { amopfamily => 'btree/text_ops', amoplefttype => 'text',
332 amoprighttype => 'text', amopstrategy => '4', amopopr => '>=(text,text)',
333 amopmethod => 'btree' },
334 { amopfamily => 'btree/text_ops', amoplefttype => 'text',
335 amoprighttype => 'text', amopstrategy => '5', amopopr => '>(text,text)',
336 amopmethod => 'btree' },
337 { amopfamily => 'btree/text_ops', amoplefttype => 'name',
338 amoprighttype => 'name', amopstrategy => '1', amopopr => '<(name,name)',
339 amopmethod => 'btree' },
340 { amopfamily => 'btree/text_ops', amoplefttype => 'name',
341 amoprighttype => 'name', amopstrategy => '2', amopopr => '<=(name,name)',
342 amopmethod => 'btree' },
343 { amopfamily => 'btree/text_ops', amoplefttype => 'name',
344 amoprighttype => 'name', amopstrategy => '3', amopopr => '=(name,name)',
345 amopmethod => 'btree' },
346 { amopfamily => 'btree/text_ops', amoplefttype => 'name',
347 amoprighttype => 'name', amopstrategy => '4', amopopr => '>=(name,name)',
348 amopmethod => 'btree' },
349 { amopfamily => 'btree/text_ops', amoplefttype => 'name',
350 amoprighttype => 'name', amopstrategy => '5', amopopr => '>(name,name)',
351 amopmethod => 'btree' },
352 { amopfamily => 'btree/text_ops', amoplefttype => 'name',
353 amoprighttype => 'text', amopstrategy => '1', amopopr => '<(name,text)',
354 amopmethod => 'btree' },
355 { amopfamily => 'btree/text_ops', amoplefttype => 'name',
356 amoprighttype => 'text', amopstrategy => '2', amopopr => '<=(name,text)',
357 amopmethod => 'btree' },
358 { amopfamily => 'btree/text_ops', amoplefttype => 'name',
359 amoprighttype => 'text', amopstrategy => '3', amopopr => '=(name,text)',
360 amopmethod => 'btree' },
361 { amopfamily => 'btree/text_ops', amoplefttype => 'name',
362 amoprighttype => 'text', amopstrategy => '4', amopopr => '>=(name,text)',
363 amopmethod => 'btree' },
364 { amopfamily => 'btree/text_ops', amoplefttype => 'name',
365 amoprighttype => 'text', amopstrategy => '5', amopopr => '>(name,text)',
366 amopmethod => 'btree' },
367 { amopfamily => 'btree/text_ops', amoplefttype => 'text',
368 amoprighttype => 'name', amopstrategy => '1', amopopr => '<(text,name)',
369 amopmethod => 'btree' },
370 { amopfamily => 'btree/text_ops', amoplefttype => 'text',
371 amoprighttype => 'name', amopstrategy => '2', amopopr => '<=(text,name)',
372 amopmethod => 'btree' },
373 { amopfamily => 'btree/text_ops', amoplefttype => 'text',
374 amoprighttype => 'name', amopstrategy => '3', amopopr => '=(text,name)',
375 amopmethod => 'btree' },
376 { amopfamily => 'btree/text_ops', amoplefttype => 'text',
377 amoprighttype => 'name', amopstrategy => '4', amopopr => '>=(text,name)',
378 amopmethod => 'btree' },
379 { amopfamily => 'btree/text_ops', amoplefttype => 'text',
380 amoprighttype => 'name', amopstrategy => '5', amopopr => '>(text,name)',
381 amopmethod => 'btree' },
383 # btree bpchar_ops
385 { amopfamily => 'btree/bpchar_ops', amoplefttype => 'bpchar',
386 amoprighttype => 'bpchar', amopstrategy => '1', amopopr => '<(bpchar,bpchar)',
387 amopmethod => 'btree' },
388 { amopfamily => 'btree/bpchar_ops', amoplefttype => 'bpchar',
389 amoprighttype => 'bpchar', amopstrategy => '2',
390 amopopr => '<=(bpchar,bpchar)', amopmethod => 'btree' },
391 { amopfamily => 'btree/bpchar_ops', amoplefttype => 'bpchar',
392 amoprighttype => 'bpchar', amopstrategy => '3', amopopr => '=(bpchar,bpchar)',
393 amopmethod => 'btree' },
394 { amopfamily => 'btree/bpchar_ops', amoplefttype => 'bpchar',
395 amoprighttype => 'bpchar', amopstrategy => '4',
396 amopopr => '>=(bpchar,bpchar)', amopmethod => 'btree' },
397 { amopfamily => 'btree/bpchar_ops', amoplefttype => 'bpchar',
398 amoprighttype => 'bpchar', amopstrategy => '5', amopopr => '>(bpchar,bpchar)',
399 amopmethod => 'btree' },
401 # btree bytea_ops
403 { amopfamily => 'btree/bytea_ops', amoplefttype => 'bytea',
404 amoprighttype => 'bytea', amopstrategy => '1', amopopr => '<(bytea,bytea)',
405 amopmethod => 'btree' },
406 { amopfamily => 'btree/bytea_ops', amoplefttype => 'bytea',
407 amoprighttype => 'bytea', amopstrategy => '2', amopopr => '<=(bytea,bytea)',
408 amopmethod => 'btree' },
409 { amopfamily => 'btree/bytea_ops', amoplefttype => 'bytea',
410 amoprighttype => 'bytea', amopstrategy => '3', amopopr => '=(bytea,bytea)',
411 amopmethod => 'btree' },
412 { amopfamily => 'btree/bytea_ops', amoplefttype => 'bytea',
413 amoprighttype => 'bytea', amopstrategy => '4', amopopr => '>=(bytea,bytea)',
414 amopmethod => 'btree' },
415 { amopfamily => 'btree/bytea_ops', amoplefttype => 'bytea',
416 amoprighttype => 'bytea', amopstrategy => '5', amopopr => '>(bytea,bytea)',
417 amopmethod => 'btree' },
419 # btree datetime_ops
421 # default operators date
422 { amopfamily => 'btree/datetime_ops', amoplefttype => 'date',
423 amoprighttype => 'date', amopstrategy => '1', amopopr => '<(date,date)',
424 amopmethod => 'btree' },
425 { amopfamily => 'btree/datetime_ops', amoplefttype => 'date',
426 amoprighttype => 'date', amopstrategy => '2', amopopr => '<=(date,date)',
427 amopmethod => 'btree' },
428 { amopfamily => 'btree/datetime_ops', amoplefttype => 'date',
429 amoprighttype => 'date', amopstrategy => '3', amopopr => '=(date,date)',
430 amopmethod => 'btree' },
431 { amopfamily => 'btree/datetime_ops', amoplefttype => 'date',
432 amoprighttype => 'date', amopstrategy => '4', amopopr => '>=(date,date)',
433 amopmethod => 'btree' },
434 { amopfamily => 'btree/datetime_ops', amoplefttype => 'date',
435 amoprighttype => 'date', amopstrategy => '5', amopopr => '>(date,date)',
436 amopmethod => 'btree' },
438 # crosstype operators vs timestamp
439 { amopfamily => 'btree/datetime_ops', amoplefttype => 'date',
440 amoprighttype => 'timestamp', amopstrategy => '1',
441 amopopr => '<(date,timestamp)', amopmethod => 'btree' },
442 { amopfamily => 'btree/datetime_ops', amoplefttype => 'date',
443 amoprighttype => 'timestamp', amopstrategy => '2',
444 amopopr => '<=(date,timestamp)', amopmethod => 'btree' },
445 { amopfamily => 'btree/datetime_ops', amoplefttype => 'date',
446 amoprighttype => 'timestamp', amopstrategy => '3',
447 amopopr => '=(date,timestamp)', amopmethod => 'btree' },
448 { amopfamily => 'btree/datetime_ops', amoplefttype => 'date',
449 amoprighttype => 'timestamp', amopstrategy => '4',
450 amopopr => '>=(date,timestamp)', amopmethod => 'btree' },
451 { amopfamily => 'btree/datetime_ops', amoplefttype => 'date',
452 amoprighttype => 'timestamp', amopstrategy => '5',
453 amopopr => '>(date,timestamp)', amopmethod => 'btree' },
455 # crosstype operators vs timestamptz
456 { amopfamily => 'btree/datetime_ops', amoplefttype => 'date',
457 amoprighttype => 'timestamptz', amopstrategy => '1',
458 amopopr => '<(date,timestamptz)', amopmethod => 'btree' },
459 { amopfamily => 'btree/datetime_ops', amoplefttype => 'date',
460 amoprighttype => 'timestamptz', amopstrategy => '2',
461 amopopr => '<=(date,timestamptz)', amopmethod => 'btree' },
462 { amopfamily => 'btree/datetime_ops', amoplefttype => 'date',
463 amoprighttype => 'timestamptz', amopstrategy => '3',
464 amopopr => '=(date,timestamptz)', amopmethod => 'btree' },
465 { amopfamily => 'btree/datetime_ops', amoplefttype => 'date',
466 amoprighttype => 'timestamptz', amopstrategy => '4',
467 amopopr => '>=(date,timestamptz)', amopmethod => 'btree' },
468 { amopfamily => 'btree/datetime_ops', amoplefttype => 'date',
469 amoprighttype => 'timestamptz', amopstrategy => '5',
470 amopopr => '>(date,timestamptz)', amopmethod => 'btree' },
472 # default operators timestamp
473 { amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp',
474 amoprighttype => 'timestamp', amopstrategy => '1',
475 amopopr => '<(timestamp,timestamp)', amopmethod => 'btree' },
476 { amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp',
477 amoprighttype => 'timestamp', amopstrategy => '2',
478 amopopr => '<=(timestamp,timestamp)', amopmethod => 'btree' },
479 { amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp',
480 amoprighttype => 'timestamp', amopstrategy => '3',
481 amopopr => '=(timestamp,timestamp)', amopmethod => 'btree' },
482 { amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp',
483 amoprighttype => 'timestamp', amopstrategy => '4',
484 amopopr => '>=(timestamp,timestamp)', amopmethod => 'btree' },
485 { amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp',
486 amoprighttype => 'timestamp', amopstrategy => '5',
487 amopopr => '>(timestamp,timestamp)', amopmethod => 'btree' },
489 # crosstype operators vs date
490 { amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp',
491 amoprighttype => 'date', amopstrategy => '1', amopopr => '<(timestamp,date)',
492 amopmethod => 'btree' },
493 { amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp',
494 amoprighttype => 'date', amopstrategy => '2', amopopr => '<=(timestamp,date)',
495 amopmethod => 'btree' },
496 { amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp',
497 amoprighttype => 'date', amopstrategy => '3', amopopr => '=(timestamp,date)',
498 amopmethod => 'btree' },
499 { amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp',
500 amoprighttype => 'date', amopstrategy => '4', amopopr => '>=(timestamp,date)',
501 amopmethod => 'btree' },
502 { amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp',
503 amoprighttype => 'date', amopstrategy => '5', amopopr => '>(timestamp,date)',
504 amopmethod => 'btree' },
506 # crosstype operators vs timestamptz
507 { amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp',
508 amoprighttype => 'timestamptz', amopstrategy => '1',
509 amopopr => '<(timestamp,timestamptz)', amopmethod => 'btree' },
510 { amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp',
511 amoprighttype => 'timestamptz', amopstrategy => '2',
512 amopopr => '<=(timestamp,timestamptz)', amopmethod => 'btree' },
513 { amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp',
514 amoprighttype => 'timestamptz', amopstrategy => '3',
515 amopopr => '=(timestamp,timestamptz)', amopmethod => 'btree' },
516 { amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp',
517 amoprighttype => 'timestamptz', amopstrategy => '4',
518 amopopr => '>=(timestamp,timestamptz)', amopmethod => 'btree' },
519 { amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamp',
520 amoprighttype => 'timestamptz', amopstrategy => '5',
521 amopopr => '>(timestamp,timestamptz)', amopmethod => 'btree' },
523 # default operators timestamptz
524 { amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz',
525 amoprighttype => 'timestamptz', amopstrategy => '1',
526 amopopr => '<(timestamptz,timestamptz)', amopmethod => 'btree' },
527 { amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz',
528 amoprighttype => 'timestamptz', amopstrategy => '2',
529 amopopr => '<=(timestamptz,timestamptz)', amopmethod => 'btree' },
530 { amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz',
531 amoprighttype => 'timestamptz', amopstrategy => '3',
532 amopopr => '=(timestamptz,timestamptz)', amopmethod => 'btree' },
533 { amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz',
534 amoprighttype => 'timestamptz', amopstrategy => '4',
535 amopopr => '>=(timestamptz,timestamptz)', amopmethod => 'btree' },
536 { amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz',
537 amoprighttype => 'timestamptz', amopstrategy => '5',
538 amopopr => '>(timestamptz,timestamptz)', amopmethod => 'btree' },
540 # crosstype operators vs date
541 { amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz',
542 amoprighttype => 'date', amopstrategy => '1',
543 amopopr => '<(timestamptz,date)', amopmethod => 'btree' },
544 { amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz',
545 amoprighttype => 'date', amopstrategy => '2',
546 amopopr => '<=(timestamptz,date)', amopmethod => 'btree' },
547 { amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz',
548 amoprighttype => 'date', amopstrategy => '3',
549 amopopr => '=(timestamptz,date)', amopmethod => 'btree' },
550 { amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz',
551 amoprighttype => 'date', amopstrategy => '4',
552 amopopr => '>=(timestamptz,date)', amopmethod => 'btree' },
553 { amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz',
554 amoprighttype => 'date', amopstrategy => '5',
555 amopopr => '>(timestamptz,date)', amopmethod => 'btree' },
557 # crosstype operators vs timestamp
558 { amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz',
559 amoprighttype => 'timestamp', amopstrategy => '1',
560 amopopr => '<(timestamptz,timestamp)', amopmethod => 'btree' },
561 { amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz',
562 amoprighttype => 'timestamp', amopstrategy => '2',
563 amopopr => '<=(timestamptz,timestamp)', amopmethod => 'btree' },
564 { amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz',
565 amoprighttype => 'timestamp', amopstrategy => '3',
566 amopopr => '=(timestamptz,timestamp)', amopmethod => 'btree' },
567 { amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz',
568 amoprighttype => 'timestamp', amopstrategy => '4',
569 amopopr => '>=(timestamptz,timestamp)', amopmethod => 'btree' },
570 { amopfamily => 'btree/datetime_ops', amoplefttype => 'timestamptz',
571 amoprighttype => 'timestamp', amopstrategy => '5',
572 amopopr => '>(timestamptz,timestamp)', amopmethod => 'btree' },
574 # btree time_ops
576 { amopfamily => 'btree/time_ops', amoplefttype => 'time',
577 amoprighttype => 'time', amopstrategy => '1', amopopr => '<(time,time)',
578 amopmethod => 'btree' },
579 { amopfamily => 'btree/time_ops', amoplefttype => 'time',
580 amoprighttype => 'time', amopstrategy => '2', amopopr => '<=(time,time)',
581 amopmethod => 'btree' },
582 { amopfamily => 'btree/time_ops', amoplefttype => 'time',
583 amoprighttype => 'time', amopstrategy => '3', amopopr => '=(time,time)',
584 amopmethod => 'btree' },
585 { amopfamily => 'btree/time_ops', amoplefttype => 'time',
586 amoprighttype => 'time', amopstrategy => '4', amopopr => '>=(time,time)',
587 amopmethod => 'btree' },
588 { amopfamily => 'btree/time_ops', amoplefttype => 'time',
589 amoprighttype => 'time', amopstrategy => '5', amopopr => '>(time,time)',
590 amopmethod => 'btree' },
592 # btree timetz_ops
594 { amopfamily => 'btree/timetz_ops', amoplefttype => 'timetz',
595 amoprighttype => 'timetz', amopstrategy => '1', amopopr => '<(timetz,timetz)',
596 amopmethod => 'btree' },
597 { amopfamily => 'btree/timetz_ops', amoplefttype => 'timetz',
598 amoprighttype => 'timetz', amopstrategy => '2',
599 amopopr => '<=(timetz,timetz)', amopmethod => 'btree' },
600 { amopfamily => 'btree/timetz_ops', amoplefttype => 'timetz',
601 amoprighttype => 'timetz', amopstrategy => '3', amopopr => '=(timetz,timetz)',
602 amopmethod => 'btree' },
603 { amopfamily => 'btree/timetz_ops', amoplefttype => 'timetz',
604 amoprighttype => 'timetz', amopstrategy => '4',
605 amopopr => '>=(timetz,timetz)', amopmethod => 'btree' },
606 { amopfamily => 'btree/timetz_ops', amoplefttype => 'timetz',
607 amoprighttype => 'timetz', amopstrategy => '5', amopopr => '>(timetz,timetz)',
608 amopmethod => 'btree' },
610 # btree interval_ops
612 { amopfamily => 'btree/interval_ops', amoplefttype => 'interval',
613 amoprighttype => 'interval', amopstrategy => '1',
614 amopopr => '<(interval,interval)', amopmethod => 'btree' },
615 { amopfamily => 'btree/interval_ops', amoplefttype => 'interval',
616 amoprighttype => 'interval', amopstrategy => '2',
617 amopopr => '<=(interval,interval)', amopmethod => 'btree' },
618 { amopfamily => 'btree/interval_ops', amoplefttype => 'interval',
619 amoprighttype => 'interval', amopstrategy => '3',
620 amopopr => '=(interval,interval)', amopmethod => 'btree' },
621 { amopfamily => 'btree/interval_ops', amoplefttype => 'interval',
622 amoprighttype => 'interval', amopstrategy => '4',
623 amopopr => '>=(interval,interval)', amopmethod => 'btree' },
624 { amopfamily => 'btree/interval_ops', amoplefttype => 'interval',
625 amoprighttype => 'interval', amopstrategy => '5',
626 amopopr => '>(interval,interval)', amopmethod => 'btree' },
628 # btree macaddr
630 { amopfamily => 'btree/macaddr_ops', amoplefttype => 'macaddr',
631 amoprighttype => 'macaddr', amopstrategy => '1',
632 amopopr => '<(macaddr,macaddr)', amopmethod => 'btree' },
633 { amopfamily => 'btree/macaddr_ops', amoplefttype => 'macaddr',
634 amoprighttype => 'macaddr', amopstrategy => '2',
635 amopopr => '<=(macaddr,macaddr)', amopmethod => 'btree' },
636 { amopfamily => 'btree/macaddr_ops', amoplefttype => 'macaddr',
637 amoprighttype => 'macaddr', amopstrategy => '3',
638 amopopr => '=(macaddr,macaddr)', amopmethod => 'btree' },
639 { amopfamily => 'btree/macaddr_ops', amoplefttype => 'macaddr',
640 amoprighttype => 'macaddr', amopstrategy => '4',
641 amopopr => '>=(macaddr,macaddr)', amopmethod => 'btree' },
642 { amopfamily => 'btree/macaddr_ops', amoplefttype => 'macaddr',
643 amoprighttype => 'macaddr', amopstrategy => '5',
644 amopopr => '>(macaddr,macaddr)', amopmethod => 'btree' },
646 # btree macaddr8
648 { amopfamily => 'btree/macaddr8_ops', amoplefttype => 'macaddr8',
649 amoprighttype => 'macaddr8', amopstrategy => '1',
650 amopopr => '<(macaddr8,macaddr8)', amopmethod => 'btree' },
651 { amopfamily => 'btree/macaddr8_ops', amoplefttype => 'macaddr8',
652 amoprighttype => 'macaddr8', amopstrategy => '2',
653 amopopr => '<=(macaddr8,macaddr8)', amopmethod => 'btree' },
654 { amopfamily => 'btree/macaddr8_ops', amoplefttype => 'macaddr8',
655 amoprighttype => 'macaddr8', amopstrategy => '3',
656 amopopr => '=(macaddr8,macaddr8)', amopmethod => 'btree' },
657 { amopfamily => 'btree/macaddr8_ops', amoplefttype => 'macaddr8',
658 amoprighttype => 'macaddr8', amopstrategy => '4',
659 amopopr => '>=(macaddr8,macaddr8)', amopmethod => 'btree' },
660 { amopfamily => 'btree/macaddr8_ops', amoplefttype => 'macaddr8',
661 amoprighttype => 'macaddr8', amopstrategy => '5',
662 amopopr => '>(macaddr8,macaddr8)', amopmethod => 'btree' },
664 # btree network
666 { amopfamily => 'btree/network_ops', amoplefttype => 'inet',
667 amoprighttype => 'inet', amopstrategy => '1', amopopr => '<(inet,inet)',
668 amopmethod => 'btree' },
669 { amopfamily => 'btree/network_ops', amoplefttype => 'inet',
670 amoprighttype => 'inet', amopstrategy => '2', amopopr => '<=(inet,inet)',
671 amopmethod => 'btree' },
672 { amopfamily => 'btree/network_ops', amoplefttype => 'inet',
673 amoprighttype => 'inet', amopstrategy => '3', amopopr => '=(inet,inet)',
674 amopmethod => 'btree' },
675 { amopfamily => 'btree/network_ops', amoplefttype => 'inet',
676 amoprighttype => 'inet', amopstrategy => '4', amopopr => '>=(inet,inet)',
677 amopmethod => 'btree' },
678 { amopfamily => 'btree/network_ops', amoplefttype => 'inet',
679 amoprighttype => 'inet', amopstrategy => '5', amopopr => '>(inet,inet)',
680 amopmethod => 'btree' },
682 # btree numeric
684 { amopfamily => 'btree/numeric_ops', amoplefttype => 'numeric',
685 amoprighttype => 'numeric', amopstrategy => '1',
686 amopopr => '<(numeric,numeric)', amopmethod => 'btree' },
687 { amopfamily => 'btree/numeric_ops', amoplefttype => 'numeric',
688 amoprighttype => 'numeric', amopstrategy => '2',
689 amopopr => '<=(numeric,numeric)', amopmethod => 'btree' },
690 { amopfamily => 'btree/numeric_ops', amoplefttype => 'numeric',
691 amoprighttype => 'numeric', amopstrategy => '3',
692 amopopr => '=(numeric,numeric)', amopmethod => 'btree' },
693 { amopfamily => 'btree/numeric_ops', amoplefttype => 'numeric',
694 amoprighttype => 'numeric', amopstrategy => '4',
695 amopopr => '>=(numeric,numeric)', amopmethod => 'btree' },
696 { amopfamily => 'btree/numeric_ops', amoplefttype => 'numeric',
697 amoprighttype => 'numeric', amopstrategy => '5',
698 amopopr => '>(numeric,numeric)', amopmethod => 'btree' },
700 # btree bool
702 { amopfamily => 'btree/bool_ops', amoplefttype => 'bool',
703 amoprighttype => 'bool', amopstrategy => '1', amopopr => '<(bool,bool)',
704 amopmethod => 'btree' },
705 { amopfamily => 'btree/bool_ops', amoplefttype => 'bool',
706 amoprighttype => 'bool', amopstrategy => '2', amopopr => '<=(bool,bool)',
707 amopmethod => 'btree' },
708 { amopfamily => 'btree/bool_ops', amoplefttype => 'bool',
709 amoprighttype => 'bool', amopstrategy => '3', amopopr => '=(bool,bool)',
710 amopmethod => 'btree' },
711 { amopfamily => 'btree/bool_ops', amoplefttype => 'bool',
712 amoprighttype => 'bool', amopstrategy => '4', amopopr => '>=(bool,bool)',
713 amopmethod => 'btree' },
714 { amopfamily => 'btree/bool_ops', amoplefttype => 'bool',
715 amoprighttype => 'bool', amopstrategy => '5', amopopr => '>(bool,bool)',
716 amopmethod => 'btree' },
718 # btree bit
720 { amopfamily => 'btree/bit_ops', amoplefttype => 'bit', amoprighttype => 'bit',
721 amopstrategy => '1', amopopr => '<(bit,bit)', amopmethod => 'btree' },
722 { amopfamily => 'btree/bit_ops', amoplefttype => 'bit', amoprighttype => 'bit',
723 amopstrategy => '2', amopopr => '<=(bit,bit)', amopmethod => 'btree' },
724 { amopfamily => 'btree/bit_ops', amoplefttype => 'bit', amoprighttype => 'bit',
725 amopstrategy => '3', amopopr => '=(bit,bit)', amopmethod => 'btree' },
726 { amopfamily => 'btree/bit_ops', amoplefttype => 'bit', amoprighttype => 'bit',
727 amopstrategy => '4', amopopr => '>=(bit,bit)', amopmethod => 'btree' },
728 { amopfamily => 'btree/bit_ops', amoplefttype => 'bit', amoprighttype => 'bit',
729 amopstrategy => '5', amopopr => '>(bit,bit)', amopmethod => 'btree' },
731 # btree varbit
733 { amopfamily => 'btree/varbit_ops', amoplefttype => 'varbit',
734 amoprighttype => 'varbit', amopstrategy => '1', amopopr => '<(varbit,varbit)',
735 amopmethod => 'btree' },
736 { amopfamily => 'btree/varbit_ops', amoplefttype => 'varbit',
737 amoprighttype => 'varbit', amopstrategy => '2',
738 amopopr => '<=(varbit,varbit)', amopmethod => 'btree' },
739 { amopfamily => 'btree/varbit_ops', amoplefttype => 'varbit',
740 amoprighttype => 'varbit', amopstrategy => '3', amopopr => '=(varbit,varbit)',
741 amopmethod => 'btree' },
742 { amopfamily => 'btree/varbit_ops', amoplefttype => 'varbit',
743 amoprighttype => 'varbit', amopstrategy => '4',
744 amopopr => '>=(varbit,varbit)', amopmethod => 'btree' },
745 { amopfamily => 'btree/varbit_ops', amoplefttype => 'varbit',
746 amoprighttype => 'varbit', amopstrategy => '5', amopopr => '>(varbit,varbit)',
747 amopmethod => 'btree' },
749 # btree text pattern
751 { amopfamily => 'btree/text_pattern_ops', amoplefttype => 'text',
752 amoprighttype => 'text', amopstrategy => '1', amopopr => '~<~(text,text)',
753 amopmethod => 'btree' },
754 { amopfamily => 'btree/text_pattern_ops', amoplefttype => 'text',
755 amoprighttype => 'text', amopstrategy => '2', amopopr => '~<=~(text,text)',
756 amopmethod => 'btree' },
757 { amopfamily => 'btree/text_pattern_ops', amoplefttype => 'text',
758 amoprighttype => 'text', amopstrategy => '3', amopopr => '=(text,text)',
759 amopmethod => 'btree' },
760 { amopfamily => 'btree/text_pattern_ops', amoplefttype => 'text',
761 amoprighttype => 'text', amopstrategy => '4', amopopr => '~>=~(text,text)',
762 amopmethod => 'btree' },
763 { amopfamily => 'btree/text_pattern_ops', amoplefttype => 'text',
764 amoprighttype => 'text', amopstrategy => '5', amopopr => '~>~(text,text)',
765 amopmethod => 'btree' },
767 # btree bpchar pattern
769 { amopfamily => 'btree/bpchar_pattern_ops', amoplefttype => 'bpchar',
770 amoprighttype => 'bpchar', amopstrategy => '1',
771 amopopr => '~<~(bpchar,bpchar)', amopmethod => 'btree' },
772 { amopfamily => 'btree/bpchar_pattern_ops', amoplefttype => 'bpchar',
773 amoprighttype => 'bpchar', amopstrategy => '2',
774 amopopr => '~<=~(bpchar,bpchar)', amopmethod => 'btree' },
775 { amopfamily => 'btree/bpchar_pattern_ops', amoplefttype => 'bpchar',
776 amoprighttype => 'bpchar', amopstrategy => '3', amopopr => '=(bpchar,bpchar)',
777 amopmethod => 'btree' },
778 { amopfamily => 'btree/bpchar_pattern_ops', amoplefttype => 'bpchar',
779 amoprighttype => 'bpchar', amopstrategy => '4',
780 amopopr => '~>=~(bpchar,bpchar)', amopmethod => 'btree' },
781 { amopfamily => 'btree/bpchar_pattern_ops', amoplefttype => 'bpchar',
782 amoprighttype => 'bpchar', amopstrategy => '5',
783 amopopr => '~>~(bpchar,bpchar)', amopmethod => 'btree' },
785 # btree money_ops
787 { amopfamily => 'btree/money_ops', amoplefttype => 'money',
788 amoprighttype => 'money', amopstrategy => '1', amopopr => '<(money,money)',
789 amopmethod => 'btree' },
790 { amopfamily => 'btree/money_ops', amoplefttype => 'money',
791 amoprighttype => 'money', amopstrategy => '2', amopopr => '<=(money,money)',
792 amopmethod => 'btree' },
793 { amopfamily => 'btree/money_ops', amoplefttype => 'money',
794 amoprighttype => 'money', amopstrategy => '3', amopopr => '=(money,money)',
795 amopmethod => 'btree' },
796 { amopfamily => 'btree/money_ops', amoplefttype => 'money',
797 amoprighttype => 'money', amopstrategy => '4', amopopr => '>=(money,money)',
798 amopmethod => 'btree' },
799 { amopfamily => 'btree/money_ops', amoplefttype => 'money',
800 amoprighttype => 'money', amopstrategy => '5', amopopr => '>(money,money)',
801 amopmethod => 'btree' },
803 # btree array_ops
805 { amopfamily => 'btree/array_ops', amoplefttype => 'anyarray',
806 amoprighttype => 'anyarray', amopstrategy => '1',
807 amopopr => '<(anyarray,anyarray)', amopmethod => 'btree' },
808 { amopfamily => 'btree/array_ops', amoplefttype => 'anyarray',
809 amoprighttype => 'anyarray', amopstrategy => '2',
810 amopopr => '<=(anyarray,anyarray)', amopmethod => 'btree' },
811 { amopfamily => 'btree/array_ops', amoplefttype => 'anyarray',
812 amoprighttype => 'anyarray', amopstrategy => '3',
813 amopopr => '=(anyarray,anyarray)', amopmethod => 'btree' },
814 { amopfamily => 'btree/array_ops', amoplefttype => 'anyarray',
815 amoprighttype => 'anyarray', amopstrategy => '4',
816 amopopr => '>=(anyarray,anyarray)', amopmethod => 'btree' },
817 { amopfamily => 'btree/array_ops', amoplefttype => 'anyarray',
818 amoprighttype => 'anyarray', amopstrategy => '5',
819 amopopr => '>(anyarray,anyarray)', amopmethod => 'btree' },
821 # btree record_ops
823 { amopfamily => 'btree/record_ops', amoplefttype => 'record',
824 amoprighttype => 'record', amopstrategy => '1', amopopr => '<(record,record)',
825 amopmethod => 'btree' },
826 { amopfamily => 'btree/record_ops', amoplefttype => 'record',
827 amoprighttype => 'record', amopstrategy => '2',
828 amopopr => '<=(record,record)', amopmethod => 'btree' },
829 { amopfamily => 'btree/record_ops', amoplefttype => 'record',
830 amoprighttype => 'record', amopstrategy => '3', amopopr => '=(record,record)',
831 amopmethod => 'btree' },
832 { amopfamily => 'btree/record_ops', amoplefttype => 'record',
833 amoprighttype => 'record', amopstrategy => '4',
834 amopopr => '>=(record,record)', amopmethod => 'btree' },
835 { amopfamily => 'btree/record_ops', amoplefttype => 'record',
836 amoprighttype => 'record', amopstrategy => '5', amopopr => '>(record,record)',
837 amopmethod => 'btree' },
839 # btree record_image_ops
841 { amopfamily => 'btree/record_image_ops', amoplefttype => 'record',
842 amoprighttype => 'record', amopstrategy => '1',
843 amopopr => '*<(record,record)', amopmethod => 'btree' },
844 { amopfamily => 'btree/record_image_ops', amoplefttype => 'record',
845 amoprighttype => 'record', amopstrategy => '2',
846 amopopr => '*<=(record,record)', amopmethod => 'btree' },
847 { amopfamily => 'btree/record_image_ops', amoplefttype => 'record',
848 amoprighttype => 'record', amopstrategy => '3',
849 amopopr => '*=(record,record)', amopmethod => 'btree' },
850 { amopfamily => 'btree/record_image_ops', amoplefttype => 'record',
851 amoprighttype => 'record', amopstrategy => '4',
852 amopopr => '*>=(record,record)', amopmethod => 'btree' },
853 { amopfamily => 'btree/record_image_ops', amoplefttype => 'record',
854 amoprighttype => 'record', amopstrategy => '5',
855 amopopr => '*>(record,record)', amopmethod => 'btree' },
857 # btree uuid_ops
859 { amopfamily => 'btree/uuid_ops', amoplefttype => 'uuid',
860 amoprighttype => 'uuid', amopstrategy => '1', amopopr => '<(uuid,uuid)',
861 amopmethod => 'btree' },
862 { amopfamily => 'btree/uuid_ops', amoplefttype => 'uuid',
863 amoprighttype => 'uuid', amopstrategy => '2', amopopr => '<=(uuid,uuid)',
864 amopmethod => 'btree' },
865 { amopfamily => 'btree/uuid_ops', amoplefttype => 'uuid',
866 amoprighttype => 'uuid', amopstrategy => '3', amopopr => '=(uuid,uuid)',
867 amopmethod => 'btree' },
868 { amopfamily => 'btree/uuid_ops', amoplefttype => 'uuid',
869 amoprighttype => 'uuid', amopstrategy => '4', amopopr => '>=(uuid,uuid)',
870 amopmethod => 'btree' },
871 { amopfamily => 'btree/uuid_ops', amoplefttype => 'uuid',
872 amoprighttype => 'uuid', amopstrategy => '5', amopopr => '>(uuid,uuid)',
873 amopmethod => 'btree' },
875 # btree pg_lsn_ops
877 { amopfamily => 'btree/pg_lsn_ops', amoplefttype => 'pg_lsn',
878 amoprighttype => 'pg_lsn', amopstrategy => '1', amopopr => '<(pg_lsn,pg_lsn)',
879 amopmethod => 'btree' },
880 { amopfamily => 'btree/pg_lsn_ops', amoplefttype => 'pg_lsn',
881 amoprighttype => 'pg_lsn', amopstrategy => '2',
882 amopopr => '<=(pg_lsn,pg_lsn)', amopmethod => 'btree' },
883 { amopfamily => 'btree/pg_lsn_ops', amoplefttype => 'pg_lsn',
884 amoprighttype => 'pg_lsn', amopstrategy => '3', amopopr => '=(pg_lsn,pg_lsn)',
885 amopmethod => 'btree' },
886 { amopfamily => 'btree/pg_lsn_ops', amoplefttype => 'pg_lsn',
887 amoprighttype => 'pg_lsn', amopstrategy => '4',
888 amopopr => '>=(pg_lsn,pg_lsn)', amopmethod => 'btree' },
889 { amopfamily => 'btree/pg_lsn_ops', amoplefttype => 'pg_lsn',
890 amoprighttype => 'pg_lsn', amopstrategy => '5', amopopr => '>(pg_lsn,pg_lsn)',
891 amopmethod => 'btree' },
893 # hash index_ops
895 # bpchar_ops
896 { amopfamily => 'hash/bpchar_ops', amoplefttype => 'bpchar',
897 amoprighttype => 'bpchar', amopstrategy => '1', amopopr => '=(bpchar,bpchar)',
898 amopmethod => 'hash' },
900 # char_ops
901 { amopfamily => 'hash/char_ops', amoplefttype => 'char',
902 amoprighttype => 'char', amopstrategy => '1', amopopr => '=(char,char)',
903 amopmethod => 'hash' },
905 # date_ops
906 { amopfamily => 'hash/date_ops', amoplefttype => 'date',
907 amoprighttype => 'date', amopstrategy => '1', amopopr => '=(date,date)',
908 amopmethod => 'hash' },
910 # float_ops
911 { amopfamily => 'hash/float_ops', amoplefttype => 'float4',
912 amoprighttype => 'float4', amopstrategy => '1', amopopr => '=(float4,float4)',
913 amopmethod => 'hash' },
914 { amopfamily => 'hash/float_ops', amoplefttype => 'float8',
915 amoprighttype => 'float8', amopstrategy => '1', amopopr => '=(float8,float8)',
916 amopmethod => 'hash' },
917 { amopfamily => 'hash/float_ops', amoplefttype => 'float4',
918 amoprighttype => 'float8', amopstrategy => '1', amopopr => '=(float4,float8)',
919 amopmethod => 'hash' },
920 { amopfamily => 'hash/float_ops', amoplefttype => 'float8',
921 amoprighttype => 'float4', amopstrategy => '1', amopopr => '=(float8,float4)',
922 amopmethod => 'hash' },
924 # network_ops
925 { amopfamily => 'hash/network_ops', amoplefttype => 'inet',
926 amoprighttype => 'inet', amopstrategy => '1', amopopr => '=(inet,inet)',
927 amopmethod => 'hash' },
929 # integer_ops
930 { amopfamily => 'hash/integer_ops', amoplefttype => 'int2',
931 amoprighttype => 'int2', amopstrategy => '1', amopopr => '=(int2,int2)',
932 amopmethod => 'hash' },
933 { amopfamily => 'hash/integer_ops', amoplefttype => 'int4',
934 amoprighttype => 'int4', amopstrategy => '1', amopopr => '=(int4,int4)',
935 amopmethod => 'hash' },
936 { amopfamily => 'hash/integer_ops', amoplefttype => 'int8',
937 amoprighttype => 'int8', amopstrategy => '1', amopopr => '=(int8,int8)',
938 amopmethod => 'hash' },
939 { amopfamily => 'hash/integer_ops', amoplefttype => 'int2',
940 amoprighttype => 'int4', amopstrategy => '1', amopopr => '=(int2,int4)',
941 amopmethod => 'hash' },
942 { amopfamily => 'hash/integer_ops', amoplefttype => 'int2',
943 amoprighttype => 'int8', amopstrategy => '1', amopopr => '=(int2,int8)',
944 amopmethod => 'hash' },
945 { amopfamily => 'hash/integer_ops', amoplefttype => 'int4',
946 amoprighttype => 'int2', amopstrategy => '1', amopopr => '=(int4,int2)',
947 amopmethod => 'hash' },
948 { amopfamily => 'hash/integer_ops', amoplefttype => 'int4',
949 amoprighttype => 'int8', amopstrategy => '1', amopopr => '=(int4,int8)',
950 amopmethod => 'hash' },
951 { amopfamily => 'hash/integer_ops', amoplefttype => 'int8',
952 amoprighttype => 'int2', amopstrategy => '1', amopopr => '=(int8,int2)',
953 amopmethod => 'hash' },
954 { amopfamily => 'hash/integer_ops', amoplefttype => 'int8',
955 amoprighttype => 'int4', amopstrategy => '1', amopopr => '=(int8,int4)',
956 amopmethod => 'hash' },
958 # interval_ops
959 { amopfamily => 'hash/interval_ops', amoplefttype => 'interval',
960 amoprighttype => 'interval', amopstrategy => '1',
961 amopopr => '=(interval,interval)', amopmethod => 'hash' },
963 # macaddr_ops
964 { amopfamily => 'hash/macaddr_ops', amoplefttype => 'macaddr',
965 amoprighttype => 'macaddr', amopstrategy => '1',
966 amopopr => '=(macaddr,macaddr)', amopmethod => 'hash' },
968 # macaddr8_ops
969 { amopfamily => 'hash/macaddr8_ops', amoplefttype => 'macaddr8',
970 amoprighttype => 'macaddr8', amopstrategy => '1',
971 amopopr => '=(macaddr8,macaddr8)', amopmethod => 'hash' },
973 # oid_ops
974 { amopfamily => 'hash/oid_ops', amoplefttype => 'oid', amoprighttype => 'oid',
975 amopstrategy => '1', amopopr => '=(oid,oid)', amopmethod => 'hash' },
977 # oidvector_ops
978 { amopfamily => 'hash/oidvector_ops', amoplefttype => 'oidvector',
979 amoprighttype => 'oidvector', amopstrategy => '1',
980 amopopr => '=(oidvector,oidvector)', amopmethod => 'hash' },
982 # record_ops
983 { amopfamily => 'hash/record_ops', amoplefttype => 'record',
984 amoprighttype => 'record', amopstrategy => '1', amopopr => '=(record,record)',
985 amopmethod => 'hash' },
987 # text_ops
988 { amopfamily => 'hash/text_ops', amoplefttype => 'text',
989 amoprighttype => 'text', amopstrategy => '1', amopopr => '=(text,text)',
990 amopmethod => 'hash' },
991 { amopfamily => 'hash/text_ops', amoplefttype => 'name',
992 amoprighttype => 'name', amopstrategy => '1', amopopr => '=(name,name)',
993 amopmethod => 'hash' },
994 { amopfamily => 'hash/text_ops', amoplefttype => 'name',
995 amoprighttype => 'text', amopstrategy => '1', amopopr => '=(name,text)',
996 amopmethod => 'hash' },
997 { amopfamily => 'hash/text_ops', amoplefttype => 'text',
998 amoprighttype => 'name', amopstrategy => '1', amopopr => '=(text,name)',
999 amopmethod => 'hash' },
1001 # time_ops
1002 { amopfamily => 'hash/time_ops', amoplefttype => 'time',
1003 amoprighttype => 'time', amopstrategy => '1', amopopr => '=(time,time)',
1004 amopmethod => 'hash' },
1006 # timestamptz_ops
1007 { amopfamily => 'hash/timestamptz_ops', amoplefttype => 'timestamptz',
1008 amoprighttype => 'timestamptz', amopstrategy => '1',
1009 amopopr => '=(timestamptz,timestamptz)', amopmethod => 'hash' },
1011 # timetz_ops
1012 { amopfamily => 'hash/timetz_ops', amoplefttype => 'timetz',
1013 amoprighttype => 'timetz', amopstrategy => '1', amopopr => '=(timetz,timetz)',
1014 amopmethod => 'hash' },
1016 # timestamp_ops
1017 { amopfamily => 'hash/timestamp_ops', amoplefttype => 'timestamp',
1018 amoprighttype => 'timestamp', amopstrategy => '1',
1019 amopopr => '=(timestamp,timestamp)', amopmethod => 'hash' },
1021 # bool_ops
1022 { amopfamily => 'hash/bool_ops', amoplefttype => 'bool',
1023 amoprighttype => 'bool', amopstrategy => '1', amopopr => '=(bool,bool)',
1024 amopmethod => 'hash' },
1026 # bytea_ops
1027 { amopfamily => 'hash/bytea_ops', amoplefttype => 'bytea',
1028 amoprighttype => 'bytea', amopstrategy => '1', amopopr => '=(bytea,bytea)',
1029 amopmethod => 'hash' },
1031 # xid_ops
1032 { amopfamily => 'hash/xid_ops', amoplefttype => 'xid', amoprighttype => 'xid',
1033 amopstrategy => '1', amopopr => '=(xid,xid)', amopmethod => 'hash' },
1035 # xid8_ops
1036 { amopfamily => 'hash/xid8_ops', amoplefttype => 'xid8',
1037 amoprighttype => 'xid8', amopstrategy => '1', amopopr => '=(xid8,xid8)',
1038 amopmethod => 'hash' },
1040 # cid_ops
1041 { amopfamily => 'hash/cid_ops', amoplefttype => 'cid', amoprighttype => 'cid',
1042 amopstrategy => '1', amopopr => '=(cid,cid)', amopmethod => 'hash' },
1044 # tid_ops
1045 { amopfamily => 'hash/tid_ops', amoplefttype => 'tid', amoprighttype => 'tid',
1046 amopstrategy => '1', amopopr => '=(tid,tid)', amopmethod => 'hash' },
1048 # text_pattern_ops
1049 { amopfamily => 'hash/text_pattern_ops', amoplefttype => 'text',
1050 amoprighttype => 'text', amopstrategy => '1', amopopr => '=(text,text)',
1051 amopmethod => 'hash' },
1053 # bpchar_pattern_ops
1054 { amopfamily => 'hash/bpchar_pattern_ops', amoplefttype => 'bpchar',
1055 amoprighttype => 'bpchar', amopstrategy => '1', amopopr => '=(bpchar,bpchar)',
1056 amopmethod => 'hash' },
1058 # aclitem_ops
1059 { amopfamily => 'hash/aclitem_ops', amoplefttype => 'aclitem',
1060 amoprighttype => 'aclitem', amopstrategy => '1',
1061 amopopr => '=(aclitem,aclitem)', amopmethod => 'hash' },
1063 # uuid_ops
1064 { amopfamily => 'hash/uuid_ops', amoplefttype => 'uuid',
1065 amoprighttype => 'uuid', amopstrategy => '1', amopopr => '=(uuid,uuid)',
1066 amopmethod => 'hash' },
1068 # pg_lsn_ops
1069 { amopfamily => 'hash/pg_lsn_ops', amoplefttype => 'pg_lsn',
1070 amoprighttype => 'pg_lsn', amopstrategy => '1', amopopr => '=(pg_lsn,pg_lsn)',
1071 amopmethod => 'hash' },
1073 # numeric_ops
1074 { amopfamily => 'hash/numeric_ops', amoplefttype => 'numeric',
1075 amoprighttype => 'numeric', amopstrategy => '1',
1076 amopopr => '=(numeric,numeric)', amopmethod => 'hash' },
1078 # array_ops
1079 { amopfamily => 'hash/array_ops', amoplefttype => 'anyarray',
1080 amoprighttype => 'anyarray', amopstrategy => '1',
1081 amopopr => '=(anyarray,anyarray)', amopmethod => 'hash' },
1083 # gist box_ops
1084 { amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
1085 amopstrategy => '1', amopopr => '<<(box,box)', amopmethod => 'gist' },
1086 { amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
1087 amopstrategy => '2', amopopr => '&<(box,box)', amopmethod => 'gist' },
1088 { amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
1089 amopstrategy => '3', amopopr => '&&(box,box)', amopmethod => 'gist' },
1090 { amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
1091 amopstrategy => '4', amopopr => '&>(box,box)', amopmethod => 'gist' },
1092 { amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
1093 amopstrategy => '5', amopopr => '>>(box,box)', amopmethod => 'gist' },
1094 { amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
1095 amopstrategy => '6', amopopr => '~=(box,box)', amopmethod => 'gist' },
1096 { amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
1097 amopstrategy => '7', amopopr => '@>(box,box)', amopmethod => 'gist' },
1098 { amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
1099 amopstrategy => '8', amopopr => '<@(box,box)', amopmethod => 'gist' },
1100 { amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
1101 amopstrategy => '9', amopopr => '&<|(box,box)', amopmethod => 'gist' },
1102 { amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
1103 amopstrategy => '10', amopopr => '<<|(box,box)', amopmethod => 'gist' },
1104 { amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
1105 amopstrategy => '11', amopopr => '|>>(box,box)', amopmethod => 'gist' },
1106 { amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
1107 amopstrategy => '12', amopopr => '|&>(box,box)', amopmethod => 'gist' },
1108 { amopfamily => 'gist/box_ops', amoplefttype => 'box', amoprighttype => 'point',
1109 amopstrategy => '15', amoppurpose => 'o', amopopr => '<->(box,point)',
1110 amopmethod => 'gist', amopsortfamily => 'btree/float_ops' },
1112 # gist point_ops
1113 { amopfamily => 'gist/point_ops', amoplefttype => 'point',
1114 amoprighttype => 'point', amopstrategy => '11', amopopr => '|>>(point,point)',
1115 amopmethod => 'gist' },
1116 { amopfamily => 'gist/point_ops', amoplefttype => 'point',
1117 amoprighttype => 'point', amopstrategy => '30', amopopr => '>^(point,point)',
1118 amopmethod => 'gist' },
1119 { amopfamily => 'gist/point_ops', amoplefttype => 'point',
1120 amoprighttype => 'point', amopstrategy => '1', amopopr => '<<(point,point)',
1121 amopmethod => 'gist' },
1122 { amopfamily => 'gist/point_ops', amoplefttype => 'point',
1123 amoprighttype => 'point', amopstrategy => '5', amopopr => '>>(point,point)',
1124 amopmethod => 'gist' },
1125 { amopfamily => 'gist/point_ops', amoplefttype => 'point',
1126 amoprighttype => 'point', amopstrategy => '10', amopopr => '<<|(point,point)',
1127 amopmethod => 'gist' },
1128 { amopfamily => 'gist/point_ops', amoplefttype => 'point',
1129 amoprighttype => 'point', amopstrategy => '29', amopopr => '<^(point,point)',
1130 amopmethod => 'gist' },
1131 { amopfamily => 'gist/point_ops', amoplefttype => 'point',
1132 amoprighttype => 'point', amopstrategy => '6', amopopr => '~=(point,point)',
1133 amopmethod => 'gist' },
1134 { amopfamily => 'gist/point_ops', amoplefttype => 'point',
1135 amoprighttype => 'point', amopstrategy => '15', amoppurpose => 'o',
1136 amopopr => '<->(point,point)', amopmethod => 'gist',
1137 amopsortfamily => 'btree/float_ops' },
1138 { amopfamily => 'gist/point_ops', amoplefttype => 'point',
1139 amoprighttype => 'box', amopstrategy => '28', amopopr => '<@(point,box)',
1140 amopmethod => 'gist' },
1141 { amopfamily => 'gist/point_ops', amoplefttype => 'point',
1142 amoprighttype => 'polygon', amopstrategy => '48',
1143 amopopr => '<@(point,polygon)', amopmethod => 'gist' },
1144 { amopfamily => 'gist/point_ops', amoplefttype => 'point',
1145 amoprighttype => 'circle', amopstrategy => '68',
1146 amopopr => '<@(point,circle)', amopmethod => 'gist' },
1148 # gist poly_ops (supports polygons)
1149 { amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
1150 amoprighttype => 'polygon', amopstrategy => '1',
1151 amopopr => '<<(polygon,polygon)', amopmethod => 'gist' },
1152 { amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
1153 amoprighttype => 'polygon', amopstrategy => '2',
1154 amopopr => '&<(polygon,polygon)', amopmethod => 'gist' },
1155 { amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
1156 amoprighttype => 'polygon', amopstrategy => '3',
1157 amopopr => '&&(polygon,polygon)', amopmethod => 'gist' },
1158 { amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
1159 amoprighttype => 'polygon', amopstrategy => '4',
1160 amopopr => '&>(polygon,polygon)', amopmethod => 'gist' },
1161 { amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
1162 amoprighttype => 'polygon', amopstrategy => '5',
1163 amopopr => '>>(polygon,polygon)', amopmethod => 'gist' },
1164 { amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
1165 amoprighttype => 'polygon', amopstrategy => '6',
1166 amopopr => '~=(polygon,polygon)', amopmethod => 'gist' },
1167 { amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
1168 amoprighttype => 'polygon', amopstrategy => '7',
1169 amopopr => '@>(polygon,polygon)', amopmethod => 'gist' },
1170 { amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
1171 amoprighttype => 'polygon', amopstrategy => '8',
1172 amopopr => '<@(polygon,polygon)', amopmethod => 'gist' },
1173 { amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
1174 amoprighttype => 'polygon', amopstrategy => '9',
1175 amopopr => '&<|(polygon,polygon)', amopmethod => 'gist' },
1176 { amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
1177 amoprighttype => 'polygon', amopstrategy => '10',
1178 amopopr => '<<|(polygon,polygon)', amopmethod => 'gist' },
1179 { amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
1180 amoprighttype => 'polygon', amopstrategy => '11',
1181 amopopr => '|>>(polygon,polygon)', amopmethod => 'gist' },
1182 { amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
1183 amoprighttype => 'polygon', amopstrategy => '12',
1184 amopopr => '|&>(polygon,polygon)', amopmethod => 'gist' },
1185 { amopfamily => 'gist/poly_ops', amoplefttype => 'polygon',
1186 amoprighttype => 'point', amopstrategy => '15', amoppurpose => 'o',
1187 amopopr => '<->(polygon,point)', amopmethod => 'gist',
1188 amopsortfamily => 'btree/float_ops' },
1190 # gist circle_ops
1191 { amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
1192 amoprighttype => 'circle', amopstrategy => '1',
1193 amopopr => '<<(circle,circle)', amopmethod => 'gist' },
1194 { amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
1195 amoprighttype => 'circle', amopstrategy => '2',
1196 amopopr => '&<(circle,circle)', amopmethod => 'gist' },
1197 { amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
1198 amoprighttype => 'circle', amopstrategy => '3',
1199 amopopr => '&&(circle,circle)', amopmethod => 'gist' },
1200 { amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
1201 amoprighttype => 'circle', amopstrategy => '4',
1202 amopopr => '&>(circle,circle)', amopmethod => 'gist' },
1203 { amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
1204 amoprighttype => 'circle', amopstrategy => '5',
1205 amopopr => '>>(circle,circle)', amopmethod => 'gist' },
1206 { amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
1207 amoprighttype => 'circle', amopstrategy => '6',
1208 amopopr => '~=(circle,circle)', amopmethod => 'gist' },
1209 { amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
1210 amoprighttype => 'circle', amopstrategy => '7',
1211 amopopr => '@>(circle,circle)', amopmethod => 'gist' },
1212 { amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
1213 amoprighttype => 'circle', amopstrategy => '8',
1214 amopopr => '<@(circle,circle)', amopmethod => 'gist' },
1215 { amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
1216 amoprighttype => 'circle', amopstrategy => '9',
1217 amopopr => '&<|(circle,circle)', amopmethod => 'gist' },
1218 { amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
1219 amoprighttype => 'circle', amopstrategy => '10',
1220 amopopr => '<<|(circle,circle)', amopmethod => 'gist' },
1221 { amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
1222 amoprighttype => 'circle', amopstrategy => '11',
1223 amopopr => '|>>(circle,circle)', amopmethod => 'gist' },
1224 { amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
1225 amoprighttype => 'circle', amopstrategy => '12',
1226 amopopr => '|&>(circle,circle)', amopmethod => 'gist' },
1227 { amopfamily => 'gist/circle_ops', amoplefttype => 'circle',
1228 amoprighttype => 'point', amopstrategy => '15', amoppurpose => 'o',
1229 amopopr => '<->(circle,point)', amopmethod => 'gist',
1230 amopsortfamily => 'btree/float_ops' },
1232 # gin array_ops
1233 { amopfamily => 'gin/array_ops', amoplefttype => 'anyarray',
1234 amoprighttype => 'anyarray', amopstrategy => '1',
1235 amopopr => '&&(anyarray,anyarray)', amopmethod => 'gin' },
1236 { amopfamily => 'gin/array_ops', amoplefttype => 'anyarray',
1237 amoprighttype => 'anyarray', amopstrategy => '2',
1238 amopopr => '@>(anyarray,anyarray)', amopmethod => 'gin' },
1239 { amopfamily => 'gin/array_ops', amoplefttype => 'anyarray',
1240 amoprighttype => 'anyarray', amopstrategy => '3',
1241 amopopr => '<@(anyarray,anyarray)', amopmethod => 'gin' },
1242 { amopfamily => 'gin/array_ops', amoplefttype => 'anyarray',
1243 amoprighttype => 'anyarray', amopstrategy => '4',
1244 amopopr => '=(anyarray,anyarray)', amopmethod => 'gin' },
1246 # btree enum_ops
1247 { amopfamily => 'btree/enum_ops', amoplefttype => 'anyenum',
1248 amoprighttype => 'anyenum', amopstrategy => '1',
1249 amopopr => '<(anyenum,anyenum)', amopmethod => 'btree' },
1250 { amopfamily => 'btree/enum_ops', amoplefttype => 'anyenum',
1251 amoprighttype => 'anyenum', amopstrategy => '2',
1252 amopopr => '<=(anyenum,anyenum)', amopmethod => 'btree' },
1253 { amopfamily => 'btree/enum_ops', amoplefttype => 'anyenum',
1254 amoprighttype => 'anyenum', amopstrategy => '3',
1255 amopopr => '=(anyenum,anyenum)', amopmethod => 'btree' },
1256 { amopfamily => 'btree/enum_ops', amoplefttype => 'anyenum',
1257 amoprighttype => 'anyenum', amopstrategy => '4',
1258 amopopr => '>=(anyenum,anyenum)', amopmethod => 'btree' },
1259 { amopfamily => 'btree/enum_ops', amoplefttype => 'anyenum',
1260 amoprighttype => 'anyenum', amopstrategy => '5',
1261 amopopr => '>(anyenum,anyenum)', amopmethod => 'btree' },
1263 # hash enum_ops
1264 { amopfamily => 'hash/enum_ops', amoplefttype => 'anyenum',
1265 amoprighttype => 'anyenum', amopstrategy => '1',
1266 amopopr => '=(anyenum,anyenum)', amopmethod => 'hash' },
1268 # btree tsvector_ops
1269 { amopfamily => 'btree/tsvector_ops', amoplefttype => 'tsvector',
1270 amoprighttype => 'tsvector', amopstrategy => '1',
1271 amopopr => '<(tsvector,tsvector)', amopmethod => 'btree' },
1272 { amopfamily => 'btree/tsvector_ops', amoplefttype => 'tsvector',
1273 amoprighttype => 'tsvector', amopstrategy => '2',
1274 amopopr => '<=(tsvector,tsvector)', amopmethod => 'btree' },
1275 { amopfamily => 'btree/tsvector_ops', amoplefttype => 'tsvector',
1276 amoprighttype => 'tsvector', amopstrategy => '3',
1277 amopopr => '=(tsvector,tsvector)', amopmethod => 'btree' },
1278 { amopfamily => 'btree/tsvector_ops', amoplefttype => 'tsvector',
1279 amoprighttype => 'tsvector', amopstrategy => '4',
1280 amopopr => '>=(tsvector,tsvector)', amopmethod => 'btree' },
1281 { amopfamily => 'btree/tsvector_ops', amoplefttype => 'tsvector',
1282 amoprighttype => 'tsvector', amopstrategy => '5',
1283 amopopr => '>(tsvector,tsvector)', amopmethod => 'btree' },
1285 # GiST tsvector_ops
1286 { amopfamily => 'gist/tsvector_ops', amoplefttype => 'tsvector',
1287 amoprighttype => 'tsquery', amopstrategy => '1',
1288 amopopr => '@@(tsvector,tsquery)', amopmethod => 'gist' },
1290 # GIN tsvector_ops
1291 { amopfamily => 'gin/tsvector_ops', amoplefttype => 'tsvector',
1292 amoprighttype => 'tsquery', amopstrategy => '1',
1293 amopopr => '@@(tsvector,tsquery)', amopmethod => 'gin' },
1294 { amopfamily => 'gin/tsvector_ops', amoplefttype => 'tsvector',
1295 amoprighttype => 'tsquery', amopstrategy => '2',
1296 amopopr => '@@@(tsvector,tsquery)', amopmethod => 'gin' },
1298 # btree tsquery_ops
1299 { amopfamily => 'btree/tsquery_ops', amoplefttype => 'tsquery',
1300 amoprighttype => 'tsquery', amopstrategy => '1',
1301 amopopr => '<(tsquery,tsquery)', amopmethod => 'btree' },
1302 { amopfamily => 'btree/tsquery_ops', amoplefttype => 'tsquery',
1303 amoprighttype => 'tsquery', amopstrategy => '2',
1304 amopopr => '<=(tsquery,tsquery)', amopmethod => 'btree' },
1305 { amopfamily => 'btree/tsquery_ops', amoplefttype => 'tsquery',
1306 amoprighttype => 'tsquery', amopstrategy => '3',
1307 amopopr => '=(tsquery,tsquery)', amopmethod => 'btree' },
1308 { amopfamily => 'btree/tsquery_ops', amoplefttype => 'tsquery',
1309 amoprighttype => 'tsquery', amopstrategy => '4',
1310 amopopr => '>=(tsquery,tsquery)', amopmethod => 'btree' },
1311 { amopfamily => 'btree/tsquery_ops', amoplefttype => 'tsquery',
1312 amoprighttype => 'tsquery', amopstrategy => '5',
1313 amopopr => '>(tsquery,tsquery)', amopmethod => 'btree' },
1315 # GiST tsquery_ops
1316 { amopfamily => 'gist/tsquery_ops', amoplefttype => 'tsquery',
1317 amoprighttype => 'tsquery', amopstrategy => '7',
1318 amopopr => '@>(tsquery,tsquery)', amopmethod => 'gist' },
1319 { amopfamily => 'gist/tsquery_ops', amoplefttype => 'tsquery',
1320 amoprighttype => 'tsquery', amopstrategy => '8',
1321 amopopr => '<@(tsquery,tsquery)', amopmethod => 'gist' },
1323 # btree range_ops
1324 { amopfamily => 'btree/range_ops', amoplefttype => 'anyrange',
1325 amoprighttype => 'anyrange', amopstrategy => '1',
1326 amopopr => '<(anyrange,anyrange)', amopmethod => 'btree' },
1327 { amopfamily => 'btree/range_ops', amoplefttype => 'anyrange',
1328 amoprighttype => 'anyrange', amopstrategy => '2',
1329 amopopr => '<=(anyrange,anyrange)', amopmethod => 'btree' },
1330 { amopfamily => 'btree/range_ops', amoplefttype => 'anyrange',
1331 amoprighttype => 'anyrange', amopstrategy => '3',
1332 amopopr => '=(anyrange,anyrange)', amopmethod => 'btree' },
1333 { amopfamily => 'btree/range_ops', amoplefttype => 'anyrange',
1334 amoprighttype => 'anyrange', amopstrategy => '4',
1335 amopopr => '>=(anyrange,anyrange)', amopmethod => 'btree' },
1336 { amopfamily => 'btree/range_ops', amoplefttype => 'anyrange',
1337 amoprighttype => 'anyrange', amopstrategy => '5',
1338 amopopr => '>(anyrange,anyrange)', amopmethod => 'btree' },
1340 # hash range_ops
1341 { amopfamily => 'hash/range_ops', amoplefttype => 'anyrange',
1342 amoprighttype => 'anyrange', amopstrategy => '1',
1343 amopopr => '=(anyrange,anyrange)', amopmethod => 'hash' },
1345 # GiST range_ops
1346 { amopfamily => 'gist/range_ops', amoplefttype => 'anyrange',
1347 amoprighttype => 'anyrange', amopstrategy => '1',
1348 amopopr => '<<(anyrange,anyrange)', amopmethod => 'gist' },
1349 { amopfamily => 'gist/range_ops', amoplefttype => 'anyrange',
1350 amoprighttype => 'anymultirange', amopstrategy => '1',
1351 amopopr => '<<(anyrange,anymultirange)', amopmethod => 'gist' },
1352 { amopfamily => 'gist/range_ops', amoplefttype => 'anyrange',
1353 amoprighttype => 'anyrange', amopstrategy => '2',
1354 amopopr => '&<(anyrange,anyrange)', amopmethod => 'gist' },
1355 { amopfamily => 'gist/range_ops', amoplefttype => 'anyrange',
1356 amoprighttype => 'anymultirange', amopstrategy => '2',
1357 amopopr => '&<(anyrange,anymultirange)', amopmethod => 'gist' },
1358 { amopfamily => 'gist/range_ops', amoplefttype => 'anyrange',
1359 amoprighttype => 'anyrange', amopstrategy => '3',
1360 amopopr => '&&(anyrange,anyrange)', amopmethod => 'gist' },
1361 { amopfamily => 'gist/range_ops', amoplefttype => 'anyrange',
1362 amoprighttype => 'anymultirange', amopstrategy => '3',
1363 amopopr => '&&(anyrange,anymultirange)', amopmethod => 'gist' },
1364 { amopfamily => 'gist/range_ops', amoplefttype => 'anyrange',
1365 amoprighttype => 'anyrange', amopstrategy => '4',
1366 amopopr => '&>(anyrange,anyrange)', amopmethod => 'gist' },
1367 { amopfamily => 'gist/range_ops', amoplefttype => 'anyrange',
1368 amoprighttype => 'anymultirange', amopstrategy => '4',
1369 amopopr => '&>(anyrange,anymultirange)', amopmethod => 'gist' },
1370 { amopfamily => 'gist/range_ops', amoplefttype => 'anyrange',
1371 amoprighttype => 'anyrange', amopstrategy => '5',
1372 amopopr => '>>(anyrange,anyrange)', amopmethod => 'gist' },
1373 { amopfamily => 'gist/range_ops', amoplefttype => 'anyrange',
1374 amoprighttype => 'anymultirange', amopstrategy => '5',
1375 amopopr => '>>(anyrange,anymultirange)', amopmethod => 'gist' },
1376 { amopfamily => 'gist/range_ops', amoplefttype => 'anyrange',
1377 amoprighttype => 'anyrange', amopstrategy => '6',
1378 amopopr => '-|-(anyrange,anyrange)', amopmethod => 'gist' },
1379 { amopfamily => 'gist/range_ops', amoplefttype => 'anyrange',
1380 amoprighttype => 'anymultirange', amopstrategy => '6',
1381 amopopr => '-|-(anyrange,anymultirange)', amopmethod => 'gist' },
1382 { amopfamily => 'gist/range_ops', amoplefttype => 'anyrange',
1383 amoprighttype => 'anyrange', amopstrategy => '7',
1384 amopopr => '@>(anyrange,anyrange)', amopmethod => 'gist' },
1385 { amopfamily => 'gist/range_ops', amoplefttype => 'anyrange',
1386 amoprighttype => 'anymultirange', amopstrategy => '7',
1387 amopopr => '@>(anyrange,anymultirange)', amopmethod => 'gist' },
1388 { amopfamily => 'gist/range_ops', amoplefttype => 'anyrange',
1389 amoprighttype => 'anyrange', amopstrategy => '8',
1390 amopopr => '<@(anyrange,anyrange)', amopmethod => 'gist' },
1391 { amopfamily => 'gist/range_ops', amoplefttype => 'anyrange',
1392 amoprighttype => 'anymultirange', amopstrategy => '8',
1393 amopopr => '<@(anyrange,anymultirange)', amopmethod => 'gist' },
1394 { amopfamily => 'gist/range_ops', amoplefttype => 'anyrange',
1395 amoprighttype => 'anyelement', amopstrategy => '16',
1396 amopopr => '@>(anyrange,anyelement)', amopmethod => 'gist' },
1397 { amopfamily => 'gist/range_ops', amoplefttype => 'anyrange',
1398 amoprighttype => 'anyrange', amopstrategy => '18',
1399 amopopr => '=(anyrange,anyrange)', amopmethod => 'gist' },
1401 # GiST multirange_ops
1402 { amopfamily => 'gist/multirange_ops', amoplefttype => 'anymultirange',
1403 amoprighttype => 'anymultirange', amopstrategy => '1',
1404 amopopr => '<<(anymultirange,anymultirange)', amopmethod => 'gist' },
1405 { amopfamily => 'gist/multirange_ops', amoplefttype => 'anymultirange',
1406 amoprighttype => 'anyrange', amopstrategy => '1',
1407 amopopr => '<<(anymultirange,anyrange)', amopmethod => 'gist' },
1408 { amopfamily => 'gist/multirange_ops', amoplefttype => 'anymultirange',
1409 amoprighttype => 'anymultirange', amopstrategy => '2',
1410 amopopr => '&<(anymultirange,anymultirange)', amopmethod => 'gist' },
1411 { amopfamily => 'gist/multirange_ops', amoplefttype => 'anymultirange',
1412 amoprighttype => 'anyrange', amopstrategy => '2',
1413 amopopr => '&<(anymultirange,anyrange)', amopmethod => 'gist' },
1414 { amopfamily => 'gist/multirange_ops', amoplefttype => 'anymultirange',
1415 amoprighttype => 'anymultirange', amopstrategy => '3',
1416 amopopr => '&&(anymultirange,anymultirange)', amopmethod => 'gist' },
1417 { amopfamily => 'gist/multirange_ops', amoplefttype => 'anymultirange',
1418 amoprighttype => 'anyrange', amopstrategy => '3',
1419 amopopr => '&&(anymultirange,anyrange)', amopmethod => 'gist' },
1420 { amopfamily => 'gist/multirange_ops', amoplefttype => 'anymultirange',
1421 amoprighttype => 'anymultirange', amopstrategy => '4',
1422 amopopr => '&>(anymultirange,anymultirange)', amopmethod => 'gist' },
1423 { amopfamily => 'gist/multirange_ops', amoplefttype => 'anymultirange',
1424 amoprighttype => 'anyrange', amopstrategy => '4',
1425 amopopr => '&>(anymultirange,anyrange)', amopmethod => 'gist' },
1426 { amopfamily => 'gist/multirange_ops', amoplefttype => 'anymultirange',
1427 amoprighttype => 'anymultirange', amopstrategy => '5',
1428 amopopr => '>>(anymultirange,anymultirange)', amopmethod => 'gist' },
1429 { amopfamily => 'gist/multirange_ops', amoplefttype => 'anymultirange',
1430 amoprighttype => 'anyrange', amopstrategy => '5',
1431 amopopr => '>>(anymultirange,anyrange)', amopmethod => 'gist' },
1432 { amopfamily => 'gist/multirange_ops', amoplefttype => 'anymultirange',
1433 amoprighttype => 'anymultirange', amopstrategy => '6',
1434 amopopr => '-|-(anymultirange,anymultirange)', amopmethod => 'gist' },
1435 { amopfamily => 'gist/multirange_ops', amoplefttype => 'anymultirange',
1436 amoprighttype => 'anyrange', amopstrategy => '6',
1437 amopopr => '-|-(anymultirange,anyrange)', amopmethod => 'gist' },
1438 { amopfamily => 'gist/multirange_ops', amoplefttype => 'anymultirange',
1439 amoprighttype => 'anymultirange', amopstrategy => '7',
1440 amopopr => '@>(anymultirange,anymultirange)', amopmethod => 'gist' },
1441 { amopfamily => 'gist/multirange_ops', amoplefttype => 'anymultirange',
1442 amoprighttype => 'anyrange', amopstrategy => '7',
1443 amopopr => '@>(anymultirange,anyrange)', amopmethod => 'gist' },
1444 { amopfamily => 'gist/multirange_ops', amoplefttype => 'anymultirange',
1445 amoprighttype => 'anymultirange', amopstrategy => '8',
1446 amopopr => '<@(anymultirange,anymultirange)', amopmethod => 'gist' },
1447 { amopfamily => 'gist/multirange_ops', amoplefttype => 'anymultirange',
1448 amoprighttype => 'anyrange', amopstrategy => '8',
1449 amopopr => '<@(anymultirange,anyrange)', amopmethod => 'gist' },
1450 { amopfamily => 'gist/multirange_ops', amoplefttype => 'anymultirange',
1451 amoprighttype => 'anyelement', amopstrategy => '16',
1452 amopopr => '@>(anymultirange,anyelement)', amopmethod => 'gist' },
1453 { amopfamily => 'gist/multirange_ops', amoplefttype => 'anymultirange',
1454 amoprighttype => 'anymultirange', amopstrategy => '18',
1455 amopopr => '=(anymultirange,anymultirange)', amopmethod => 'gist' },
1457 # btree multirange_ops
1458 { amopfamily => 'btree/multirange_ops', amoplefttype => 'anymultirange',
1459 amoprighttype => 'anymultirange', amopstrategy => '1',
1460 amopopr => '<(anymultirange,anymultirange)', amopmethod => 'btree' },
1461 { amopfamily => 'btree/multirange_ops', amoplefttype => 'anymultirange',
1462 amoprighttype => 'anymultirange', amopstrategy => '2',
1463 amopopr => '<=(anymultirange,anymultirange)', amopmethod => 'btree' },
1464 { amopfamily => 'btree/multirange_ops', amoplefttype => 'anymultirange',
1465 amoprighttype => 'anymultirange', amopstrategy => '3',
1466 amopopr => '=(anymultirange,anymultirange)', amopmethod => 'btree' },
1467 { amopfamily => 'btree/multirange_ops', amoplefttype => 'anymultirange',
1468 amoprighttype => 'anymultirange', amopstrategy => '4',
1469 amopopr => '>=(anymultirange,anymultirange)', amopmethod => 'btree' },
1470 { amopfamily => 'btree/multirange_ops', amoplefttype => 'anymultirange',
1471 amoprighttype => 'anymultirange', amopstrategy => '5',
1472 amopopr => '>(anymultirange,anymultirange)', amopmethod => 'btree' },
1474 # hash multirange_ops
1475 { amopfamily => 'hash/multirange_ops', amoplefttype => 'anymultirange',
1476 amoprighttype => 'anymultirange', amopstrategy => '1',
1477 amopopr => '=(anymultirange,anymultirange)', amopmethod => 'hash' },
1479 # SP-GiST quad_point_ops
1480 { amopfamily => 'spgist/quad_point_ops', amoplefttype => 'point',
1481 amoprighttype => 'point', amopstrategy => '11', amopopr => '|>>(point,point)',
1482 amopmethod => 'spgist' },
1483 { amopfamily => 'spgist/quad_point_ops', amoplefttype => 'point',
1484 amoprighttype => 'point', amopstrategy => '30', amopopr => '>^(point,point)',
1485 amopmethod => 'spgist' },
1486 { amopfamily => 'spgist/quad_point_ops', amoplefttype => 'point',
1487 amoprighttype => 'point', amopstrategy => '1', amopopr => '<<(point,point)',
1488 amopmethod => 'spgist' },
1489 { amopfamily => 'spgist/quad_point_ops', amoplefttype => 'point',
1490 amoprighttype => 'point', amopstrategy => '5', amopopr => '>>(point,point)',
1491 amopmethod => 'spgist' },
1492 { amopfamily => 'spgist/quad_point_ops', amoplefttype => 'point',
1493 amoprighttype => 'point', amopstrategy => '10', amopopr => '<<|(point,point)',
1494 amopmethod => 'spgist' },
1495 { amopfamily => 'spgist/quad_point_ops', amoplefttype => 'point',
1496 amoprighttype => 'point', amopstrategy => '29', amopopr => '<^(point,point)',
1497 amopmethod => 'spgist' },
1498 { amopfamily => 'spgist/quad_point_ops', amoplefttype => 'point',
1499 amoprighttype => 'point', amopstrategy => '6', amopopr => '~=(point,point)',
1500 amopmethod => 'spgist' },
1501 { amopfamily => 'spgist/quad_point_ops', amoplefttype => 'point',
1502 amoprighttype => 'box', amopstrategy => '8', amopopr => '<@(point,box)',
1503 amopmethod => 'spgist' },
1504 { amopfamily => 'spgist/quad_point_ops', amoplefttype => 'point',
1505 amoprighttype => 'point', amopstrategy => '15', amoppurpose => 'o',
1506 amopopr => '<->(point,point)', amopmethod => 'spgist',
1507 amopsortfamily => 'btree/float_ops' },
1509 # SP-GiST kd_point_ops
1510 { amopfamily => 'spgist/kd_point_ops', amoplefttype => 'point',
1511 amoprighttype => 'point', amopstrategy => '11', amopopr => '|>>(point,point)',
1512 amopmethod => 'spgist' },
1513 { amopfamily => 'spgist/kd_point_ops', amoplefttype => 'point',
1514 amoprighttype => 'point', amopstrategy => '30', amopopr => '>^(point,point)',
1515 amopmethod => 'spgist' },
1516 { amopfamily => 'spgist/kd_point_ops', amoplefttype => 'point',
1517 amoprighttype => 'point', amopstrategy => '1', amopopr => '<<(point,point)',
1518 amopmethod => 'spgist' },
1519 { amopfamily => 'spgist/kd_point_ops', amoplefttype => 'point',
1520 amoprighttype => 'point', amopstrategy => '5', amopopr => '>>(point,point)',
1521 amopmethod => 'spgist' },
1522 { amopfamily => 'spgist/kd_point_ops', amoplefttype => 'point',
1523 amoprighttype => 'point', amopstrategy => '10', amopopr => '<<|(point,point)',
1524 amopmethod => 'spgist' },
1525 { amopfamily => 'spgist/kd_point_ops', amoplefttype => 'point',
1526 amoprighttype => 'point', amopstrategy => '29', amopopr => '<^(point,point)',
1527 amopmethod => 'spgist' },
1528 { amopfamily => 'spgist/kd_point_ops', amoplefttype => 'point',
1529 amoprighttype => 'point', amopstrategy => '6', amopopr => '~=(point,point)',
1530 amopmethod => 'spgist' },
1531 { amopfamily => 'spgist/kd_point_ops', amoplefttype => 'point',
1532 amoprighttype => 'box', amopstrategy => '8', amopopr => '<@(point,box)',
1533 amopmethod => 'spgist' },
1534 { amopfamily => 'spgist/kd_point_ops', amoplefttype => 'point',
1535 amoprighttype => 'point', amopstrategy => '15', amoppurpose => 'o',
1536 amopopr => '<->(point,point)', amopmethod => 'spgist',
1537 amopsortfamily => 'btree/float_ops' },
1539 # SP-GiST text_ops
1540 { amopfamily => 'spgist/text_ops', amoplefttype => 'text',
1541 amoprighttype => 'text', amopstrategy => '1', amopopr => '~<~(text,text)',
1542 amopmethod => 'spgist' },
1543 { amopfamily => 'spgist/text_ops', amoplefttype => 'text',
1544 amoprighttype => 'text', amopstrategy => '2', amopopr => '~<=~(text,text)',
1545 amopmethod => 'spgist' },
1546 { amopfamily => 'spgist/text_ops', amoplefttype => 'text',
1547 amoprighttype => 'text', amopstrategy => '3', amopopr => '=(text,text)',
1548 amopmethod => 'spgist' },
1549 { amopfamily => 'spgist/text_ops', amoplefttype => 'text',
1550 amoprighttype => 'text', amopstrategy => '4', amopopr => '~>=~(text,text)',
1551 amopmethod => 'spgist' },
1552 { amopfamily => 'spgist/text_ops', amoplefttype => 'text',
1553 amoprighttype => 'text', amopstrategy => '5', amopopr => '~>~(text,text)',
1554 amopmethod => 'spgist' },
1555 { amopfamily => 'spgist/text_ops', amoplefttype => 'text',
1556 amoprighttype => 'text', amopstrategy => '11', amopopr => '<(text,text)',
1557 amopmethod => 'spgist' },
1558 { amopfamily => 'spgist/text_ops', amoplefttype => 'text',
1559 amoprighttype => 'text', amopstrategy => '12', amopopr => '<=(text,text)',
1560 amopmethod => 'spgist' },
1561 { amopfamily => 'spgist/text_ops', amoplefttype => 'text',
1562 amoprighttype => 'text', amopstrategy => '14', amopopr => '>=(text,text)',
1563 amopmethod => 'spgist' },
1564 { amopfamily => 'spgist/text_ops', amoplefttype => 'text',
1565 amoprighttype => 'text', amopstrategy => '15', amopopr => '>(text,text)',
1566 amopmethod => 'spgist' },
1567 { amopfamily => 'spgist/text_ops', amoplefttype => 'text',
1568 amoprighttype => 'text', amopstrategy => '28', amopopr => '^@(text,text)',
1569 amopmethod => 'spgist' },
1571 # btree jsonb_ops
1572 { amopfamily => 'btree/jsonb_ops', amoplefttype => 'jsonb',
1573 amoprighttype => 'jsonb', amopstrategy => '1', amopopr => '<(jsonb,jsonb)',
1574 amopmethod => 'btree' },
1575 { amopfamily => 'btree/jsonb_ops', amoplefttype => 'jsonb',
1576 amoprighttype => 'jsonb', amopstrategy => '2', amopopr => '<=(jsonb,jsonb)',
1577 amopmethod => 'btree' },
1578 { amopfamily => 'btree/jsonb_ops', amoplefttype => 'jsonb',
1579 amoprighttype => 'jsonb', amopstrategy => '3', amopopr => '=(jsonb,jsonb)',
1580 amopmethod => 'btree' },
1581 { amopfamily => 'btree/jsonb_ops', amoplefttype => 'jsonb',
1582 amoprighttype => 'jsonb', amopstrategy => '4', amopopr => '>=(jsonb,jsonb)',
1583 amopmethod => 'btree' },
1584 { amopfamily => 'btree/jsonb_ops', amoplefttype => 'jsonb',
1585 amoprighttype => 'jsonb', amopstrategy => '5', amopopr => '>(jsonb,jsonb)',
1586 amopmethod => 'btree' },
1588 # hash jsonb_ops
1589 { amopfamily => 'hash/jsonb_ops', amoplefttype => 'jsonb',
1590 amoprighttype => 'jsonb', amopstrategy => '1', amopopr => '=(jsonb,jsonb)',
1591 amopmethod => 'hash' },
1593 # GIN jsonb_ops
1594 { amopfamily => 'gin/jsonb_ops', amoplefttype => 'jsonb',
1595 amoprighttype => 'jsonb', amopstrategy => '7', amopopr => '@>(jsonb,jsonb)',
1596 amopmethod => 'gin' },
1597 { amopfamily => 'gin/jsonb_ops', amoplefttype => 'jsonb',
1598 amoprighttype => 'text', amopstrategy => '9', amopopr => '?(jsonb,text)',
1599 amopmethod => 'gin' },
1600 { amopfamily => 'gin/jsonb_ops', amoplefttype => 'jsonb',
1601 amoprighttype => '_text', amopstrategy => '10', amopopr => '?|(jsonb,_text)',
1602 amopmethod => 'gin' },
1603 { amopfamily => 'gin/jsonb_ops', amoplefttype => 'jsonb',
1604 amoprighttype => '_text', amopstrategy => '11', amopopr => '?&(jsonb,_text)',
1605 amopmethod => 'gin' },
1606 { amopfamily => 'gin/jsonb_ops', amoplefttype => 'jsonb',
1607 amoprighttype => 'jsonpath', amopstrategy => '15',
1608 amopopr => '@?(jsonb,jsonpath)', amopmethod => 'gin' },
1609 { amopfamily => 'gin/jsonb_ops', amoplefttype => 'jsonb',
1610 amoprighttype => 'jsonpath', amopstrategy => '16',
1611 amopopr => '@@(jsonb,jsonpath)', amopmethod => 'gin' },
1613 # GIN jsonb_path_ops
1614 { amopfamily => 'gin/jsonb_path_ops', amoplefttype => 'jsonb',
1615 amoprighttype => 'jsonb', amopstrategy => '7', amopopr => '@>(jsonb,jsonb)',
1616 amopmethod => 'gin' },
1617 { amopfamily => 'gin/jsonb_path_ops', amoplefttype => 'jsonb',
1618 amoprighttype => 'jsonpath', amopstrategy => '15',
1619 amopopr => '@?(jsonb,jsonpath)', amopmethod => 'gin' },
1620 { amopfamily => 'gin/jsonb_path_ops', amoplefttype => 'jsonb',
1621 amoprighttype => 'jsonpath', amopstrategy => '16',
1622 amopopr => '@@(jsonb,jsonpath)', amopmethod => 'gin' },
1624 # SP-GiST range_ops
1625 { amopfamily => 'spgist/range_ops', amoplefttype => 'anyrange',
1626 amoprighttype => 'anyrange', amopstrategy => '1',
1627 amopopr => '<<(anyrange,anyrange)', amopmethod => 'spgist' },
1628 { amopfamily => 'spgist/range_ops', amoplefttype => 'anyrange',
1629 amoprighttype => 'anyrange', amopstrategy => '2',
1630 amopopr => '&<(anyrange,anyrange)', amopmethod => 'spgist' },
1631 { amopfamily => 'spgist/range_ops', amoplefttype => 'anyrange',
1632 amoprighttype => 'anyrange', amopstrategy => '3',
1633 amopopr => '&&(anyrange,anyrange)', amopmethod => 'spgist' },
1634 { amopfamily => 'spgist/range_ops', amoplefttype => 'anyrange',
1635 amoprighttype => 'anyrange', amopstrategy => '4',
1636 amopopr => '&>(anyrange,anyrange)', amopmethod => 'spgist' },
1637 { amopfamily => 'spgist/range_ops', amoplefttype => 'anyrange',
1638 amoprighttype => 'anyrange', amopstrategy => '5',
1639 amopopr => '>>(anyrange,anyrange)', amopmethod => 'spgist' },
1640 { amopfamily => 'spgist/range_ops', amoplefttype => 'anyrange',
1641 amoprighttype => 'anyrange', amopstrategy => '6',
1642 amopopr => '-|-(anyrange,anyrange)', amopmethod => 'spgist' },
1643 { amopfamily => 'spgist/range_ops', amoplefttype => 'anyrange',
1644 amoprighttype => 'anyrange', amopstrategy => '7',
1645 amopopr => '@>(anyrange,anyrange)', amopmethod => 'spgist' },
1646 { amopfamily => 'spgist/range_ops', amoplefttype => 'anyrange',
1647 amoprighttype => 'anyrange', amopstrategy => '8',
1648 amopopr => '<@(anyrange,anyrange)', amopmethod => 'spgist' },
1649 { amopfamily => 'spgist/range_ops', amoplefttype => 'anyrange',
1650 amoprighttype => 'anyelement', amopstrategy => '16',
1651 amopopr => '@>(anyrange,anyelement)', amopmethod => 'spgist' },
1652 { amopfamily => 'spgist/range_ops', amoplefttype => 'anyrange',
1653 amoprighttype => 'anyrange', amopstrategy => '18',
1654 amopopr => '=(anyrange,anyrange)', amopmethod => 'spgist' },
1656 # SP-GiST box_ops
1657 { amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
1658 amopstrategy => '1', amopopr => '<<(box,box)', amopmethod => 'spgist' },
1659 { amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
1660 amopstrategy => '2', amopopr => '&<(box,box)', amopmethod => 'spgist' },
1661 { amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
1662 amopstrategy => '3', amopopr => '&&(box,box)', amopmethod => 'spgist' },
1663 { amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
1664 amopstrategy => '4', amopopr => '&>(box,box)', amopmethod => 'spgist' },
1665 { amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
1666 amopstrategy => '5', amopopr => '>>(box,box)', amopmethod => 'spgist' },
1667 { amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
1668 amopstrategy => '6', amopopr => '~=(box,box)', amopmethod => 'spgist' },
1669 { amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
1670 amopstrategy => '7', amopopr => '@>(box,box)', amopmethod => 'spgist' },
1671 { amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
1672 amopstrategy => '8', amopopr => '<@(box,box)', amopmethod => 'spgist' },
1673 { amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
1674 amopstrategy => '9', amopopr => '&<|(box,box)', amopmethod => 'spgist' },
1675 { amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
1676 amopstrategy => '10', amopopr => '<<|(box,box)', amopmethod => 'spgist' },
1677 { amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
1678 amopstrategy => '11', amopopr => '|>>(box,box)', amopmethod => 'spgist' },
1679 { amopfamily => 'spgist/box_ops', amoplefttype => 'box', amoprighttype => 'box',
1680 amopstrategy => '12', amopopr => '|&>(box,box)', amopmethod => 'spgist' },
1681 { amopfamily => 'spgist/box_ops', amoplefttype => 'box',
1682 amoprighttype => 'point', amopstrategy => '15', amoppurpose => 'o',
1683 amopopr => '<->(box,point)', amopmethod => 'spgist',
1684 amopsortfamily => 'btree/float_ops' },
1686 # SP-GiST poly_ops (supports polygons)
1687 { amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon',
1688 amoprighttype => 'polygon', amopstrategy => '1',
1689 amopopr => '<<(polygon,polygon)', amopmethod => 'spgist' },
1690 { amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon',
1691 amoprighttype => 'polygon', amopstrategy => '2',
1692 amopopr => '&<(polygon,polygon)', amopmethod => 'spgist' },
1693 { amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon',
1694 amoprighttype => 'polygon', amopstrategy => '3',
1695 amopopr => '&&(polygon,polygon)', amopmethod => 'spgist' },
1696 { amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon',
1697 amoprighttype => 'polygon', amopstrategy => '4',
1698 amopopr => '&>(polygon,polygon)', amopmethod => 'spgist' },
1699 { amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon',
1700 amoprighttype => 'polygon', amopstrategy => '5',
1701 amopopr => '>>(polygon,polygon)', amopmethod => 'spgist' },
1702 { amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon',
1703 amoprighttype => 'polygon', amopstrategy => '6',
1704 amopopr => '~=(polygon,polygon)', amopmethod => 'spgist' },
1705 { amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon',
1706 amoprighttype => 'polygon', amopstrategy => '7',
1707 amopopr => '@>(polygon,polygon)', amopmethod => 'spgist' },
1708 { amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon',
1709 amoprighttype => 'polygon', amopstrategy => '8',
1710 amopopr => '<@(polygon,polygon)', amopmethod => 'spgist' },
1711 { amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon',
1712 amoprighttype => 'polygon', amopstrategy => '9',
1713 amopopr => '&<|(polygon,polygon)', amopmethod => 'spgist' },
1714 { amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon',
1715 amoprighttype => 'polygon', amopstrategy => '10',
1716 amopopr => '<<|(polygon,polygon)', amopmethod => 'spgist' },
1717 { amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon',
1718 amoprighttype => 'polygon', amopstrategy => '11',
1719 amopopr => '|>>(polygon,polygon)', amopmethod => 'spgist' },
1720 { amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon',
1721 amoprighttype => 'polygon', amopstrategy => '12',
1722 amopopr => '|&>(polygon,polygon)', amopmethod => 'spgist' },
1723 { amopfamily => 'spgist/poly_ops', amoplefttype => 'polygon',
1724 amoprighttype => 'point', amopstrategy => '15', amoppurpose => 'o',
1725 amopopr => '<->(polygon,point)', amopmethod => 'spgist',
1726 amopsortfamily => 'btree/float_ops' },
1728 # GiST inet_ops
1729 { amopfamily => 'gist/network_ops', amoplefttype => 'inet',
1730 amoprighttype => 'inet', amopstrategy => '3', amopopr => '&&(inet,inet)',
1731 amopmethod => 'gist' },
1732 { amopfamily => 'gist/network_ops', amoplefttype => 'inet',
1733 amoprighttype => 'inet', amopstrategy => '18', amopopr => '=(inet,inet)',
1734 amopmethod => 'gist' },
1735 { amopfamily => 'gist/network_ops', amoplefttype => 'inet',
1736 amoprighttype => 'inet', amopstrategy => '19', amopopr => '<>(inet,inet)',
1737 amopmethod => 'gist' },
1738 { amopfamily => 'gist/network_ops', amoplefttype => 'inet',
1739 amoprighttype => 'inet', amopstrategy => '20', amopopr => '<(inet,inet)',
1740 amopmethod => 'gist' },
1741 { amopfamily => 'gist/network_ops', amoplefttype => 'inet',
1742 amoprighttype => 'inet', amopstrategy => '21', amopopr => '<=(inet,inet)',
1743 amopmethod => 'gist' },
1744 { amopfamily => 'gist/network_ops', amoplefttype => 'inet',
1745 amoprighttype => 'inet', amopstrategy => '22', amopopr => '>(inet,inet)',
1746 amopmethod => 'gist' },
1747 { amopfamily => 'gist/network_ops', amoplefttype => 'inet',
1748 amoprighttype => 'inet', amopstrategy => '23', amopopr => '>=(inet,inet)',
1749 amopmethod => 'gist' },
1750 { amopfamily => 'gist/network_ops', amoplefttype => 'inet',
1751 amoprighttype => 'inet', amopstrategy => '24', amopopr => '<<(inet,inet)',
1752 amopmethod => 'gist' },
1753 { amopfamily => 'gist/network_ops', amoplefttype => 'inet',
1754 amoprighttype => 'inet', amopstrategy => '25', amopopr => '<<=(inet,inet)',
1755 amopmethod => 'gist' },
1756 { amopfamily => 'gist/network_ops', amoplefttype => 'inet',
1757 amoprighttype => 'inet', amopstrategy => '26', amopopr => '>>(inet,inet)',
1758 amopmethod => 'gist' },
1759 { amopfamily => 'gist/network_ops', amoplefttype => 'inet',
1760 amoprighttype => 'inet', amopstrategy => '27', amopopr => '>>=(inet,inet)',
1761 amopmethod => 'gist' },
1763 # SP-GiST inet_ops
1764 { amopfamily => 'spgist/network_ops', amoplefttype => 'inet',
1765 amoprighttype => 'inet', amopstrategy => '3', amopopr => '&&(inet,inet)',
1766 amopmethod => 'spgist' },
1767 { amopfamily => 'spgist/network_ops', amoplefttype => 'inet',
1768 amoprighttype => 'inet', amopstrategy => '18', amopopr => '=(inet,inet)',
1769 amopmethod => 'spgist' },
1770 { amopfamily => 'spgist/network_ops', amoplefttype => 'inet',
1771 amoprighttype => 'inet', amopstrategy => '19', amopopr => '<>(inet,inet)',
1772 amopmethod => 'spgist' },
1773 { amopfamily => 'spgist/network_ops', amoplefttype => 'inet',
1774 amoprighttype => 'inet', amopstrategy => '20', amopopr => '<(inet,inet)',
1775 amopmethod => 'spgist' },
1776 { amopfamily => 'spgist/network_ops', amoplefttype => 'inet',
1777 amoprighttype => 'inet', amopstrategy => '21', amopopr => '<=(inet,inet)',
1778 amopmethod => 'spgist' },
1779 { amopfamily => 'spgist/network_ops', amoplefttype => 'inet',
1780 amoprighttype => 'inet', amopstrategy => '22', amopopr => '>(inet,inet)',
1781 amopmethod => 'spgist' },
1782 { amopfamily => 'spgist/network_ops', amoplefttype => 'inet',
1783 amoprighttype => 'inet', amopstrategy => '23', amopopr => '>=(inet,inet)',
1784 amopmethod => 'spgist' },
1785 { amopfamily => 'spgist/network_ops', amoplefttype => 'inet',
1786 amoprighttype => 'inet', amopstrategy => '24', amopopr => '<<(inet,inet)',
1787 amopmethod => 'spgist' },
1788 { amopfamily => 'spgist/network_ops', amoplefttype => 'inet',
1789 amoprighttype => 'inet', amopstrategy => '25', amopopr => '<<=(inet,inet)',
1790 amopmethod => 'spgist' },
1791 { amopfamily => 'spgist/network_ops', amoplefttype => 'inet',
1792 amoprighttype => 'inet', amopstrategy => '26', amopopr => '>>(inet,inet)',
1793 amopmethod => 'spgist' },
1794 { amopfamily => 'spgist/network_ops', amoplefttype => 'inet',
1795 amoprighttype => 'inet', amopstrategy => '27', amopopr => '>>=(inet,inet)',
1796 amopmethod => 'spgist' },
1798 # BRIN opclasses
1800 # minmax bytea
1801 { amopfamily => 'brin/bytea_minmax_ops', amoplefttype => 'bytea',
1802 amoprighttype => 'bytea', amopstrategy => '1', amopopr => '<(bytea,bytea)',
1803 amopmethod => 'brin' },
1804 { amopfamily => 'brin/bytea_minmax_ops', amoplefttype => 'bytea',
1805 amoprighttype => 'bytea', amopstrategy => '2', amopopr => '<=(bytea,bytea)',
1806 amopmethod => 'brin' },
1807 { amopfamily => 'brin/bytea_minmax_ops', amoplefttype => 'bytea',
1808 amoprighttype => 'bytea', amopstrategy => '3', amopopr => '=(bytea,bytea)',
1809 amopmethod => 'brin' },
1810 { amopfamily => 'brin/bytea_minmax_ops', amoplefttype => 'bytea',
1811 amoprighttype => 'bytea', amopstrategy => '4', amopopr => '>=(bytea,bytea)',
1812 amopmethod => 'brin' },
1813 { amopfamily => 'brin/bytea_minmax_ops', amoplefttype => 'bytea',
1814 amoprighttype => 'bytea', amopstrategy => '5', amopopr => '>(bytea,bytea)',
1815 amopmethod => 'brin' },
1817 # bloom bytea
1818 { amopfamily => 'brin/bytea_bloom_ops', amoplefttype => 'bytea',
1819 amoprighttype => 'bytea', amopstrategy => '1', amopopr => '=(bytea,bytea)',
1820 amopmethod => 'brin' },
1822 # minmax "char"
1823 { amopfamily => 'brin/char_minmax_ops', amoplefttype => 'char',
1824 amoprighttype => 'char', amopstrategy => '1', amopopr => '<(char,char)',
1825 amopmethod => 'brin' },
1826 { amopfamily => 'brin/char_minmax_ops', amoplefttype => 'char',
1827 amoprighttype => 'char', amopstrategy => '2', amopopr => '<=(char,char)',
1828 amopmethod => 'brin' },
1829 { amopfamily => 'brin/char_minmax_ops', amoplefttype => 'char',
1830 amoprighttype => 'char', amopstrategy => '3', amopopr => '=(char,char)',
1831 amopmethod => 'brin' },
1832 { amopfamily => 'brin/char_minmax_ops', amoplefttype => 'char',
1833 amoprighttype => 'char', amopstrategy => '4', amopopr => '>=(char,char)',
1834 amopmethod => 'brin' },
1835 { amopfamily => 'brin/char_minmax_ops', amoplefttype => 'char',
1836 amoprighttype => 'char', amopstrategy => '5', amopopr => '>(char,char)',
1837 amopmethod => 'brin' },
1839 # bloom "char"
1840 { amopfamily => 'brin/char_bloom_ops', amoplefttype => 'char',
1841 amoprighttype => 'char', amopstrategy => '1', amopopr => '=(char,char)',
1842 amopmethod => 'brin' },
1844 # minmax name
1845 { amopfamily => 'brin/name_minmax_ops', amoplefttype => 'name',
1846 amoprighttype => 'name', amopstrategy => '1', amopopr => '<(name,name)',
1847 amopmethod => 'brin' },
1848 { amopfamily => 'brin/name_minmax_ops', amoplefttype => 'name',
1849 amoprighttype => 'name', amopstrategy => '2', amopopr => '<=(name,name)',
1850 amopmethod => 'brin' },
1851 { amopfamily => 'brin/name_minmax_ops', amoplefttype => 'name',
1852 amoprighttype => 'name', amopstrategy => '3', amopopr => '=(name,name)',
1853 amopmethod => 'brin' },
1854 { amopfamily => 'brin/name_minmax_ops', amoplefttype => 'name',
1855 amoprighttype => 'name', amopstrategy => '4', amopopr => '>=(name,name)',
1856 amopmethod => 'brin' },
1857 { amopfamily => 'brin/name_minmax_ops', amoplefttype => 'name',
1858 amoprighttype => 'name', amopstrategy => '5', amopopr => '>(name,name)',
1859 amopmethod => 'brin' },
1861 # bloom name
1862 { amopfamily => 'brin/name_bloom_ops', amoplefttype => 'name',
1863 amoprighttype => 'name', amopstrategy => '1', amopopr => '=(name,name)',
1864 amopmethod => 'brin' },
1866 # minmax integer
1868 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8',
1869 amoprighttype => 'int8', amopstrategy => '1', amopopr => '<(int8,int8)',
1870 amopmethod => 'brin' },
1871 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8',
1872 amoprighttype => 'int8', amopstrategy => '2', amopopr => '<=(int8,int8)',
1873 amopmethod => 'brin' },
1874 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8',
1875 amoprighttype => 'int8', amopstrategy => '3', amopopr => '=(int8,int8)',
1876 amopmethod => 'brin' },
1877 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8',
1878 amoprighttype => 'int8', amopstrategy => '4', amopopr => '>=(int8,int8)',
1879 amopmethod => 'brin' },
1880 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8',
1881 amoprighttype => 'int8', amopstrategy => '5', amopopr => '>(int8,int8)',
1882 amopmethod => 'brin' },
1884 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8',
1885 amoprighttype => 'int2', amopstrategy => '1', amopopr => '<(int8,int2)',
1886 amopmethod => 'brin' },
1887 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8',
1888 amoprighttype => 'int2', amopstrategy => '2', amopopr => '<=(int8,int2)',
1889 amopmethod => 'brin' },
1890 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8',
1891 amoprighttype => 'int2', amopstrategy => '3', amopopr => '=(int8,int2)',
1892 amopmethod => 'brin' },
1893 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8',
1894 amoprighttype => 'int2', amopstrategy => '4', amopopr => '>=(int8,int2)',
1895 amopmethod => 'brin' },
1896 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8',
1897 amoprighttype => 'int2', amopstrategy => '5', amopopr => '>(int8,int2)',
1898 amopmethod => 'brin' },
1900 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8',
1901 amoprighttype => 'int4', amopstrategy => '1', amopopr => '<(int8,int4)',
1902 amopmethod => 'brin' },
1903 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8',
1904 amoprighttype => 'int4', amopstrategy => '2', amopopr => '<=(int8,int4)',
1905 amopmethod => 'brin' },
1906 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8',
1907 amoprighttype => 'int4', amopstrategy => '3', amopopr => '=(int8,int4)',
1908 amopmethod => 'brin' },
1909 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8',
1910 amoprighttype => 'int4', amopstrategy => '4', amopopr => '>=(int8,int4)',
1911 amopmethod => 'brin' },
1912 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int8',
1913 amoprighttype => 'int4', amopstrategy => '5', amopopr => '>(int8,int4)',
1914 amopmethod => 'brin' },
1916 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2',
1917 amoprighttype => 'int2', amopstrategy => '1', amopopr => '<(int2,int2)',
1918 amopmethod => 'brin' },
1919 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2',
1920 amoprighttype => 'int2', amopstrategy => '2', amopopr => '<=(int2,int2)',
1921 amopmethod => 'brin' },
1922 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2',
1923 amoprighttype => 'int2', amopstrategy => '3', amopopr => '=(int2,int2)',
1924 amopmethod => 'brin' },
1925 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2',
1926 amoprighttype => 'int2', amopstrategy => '4', amopopr => '>=(int2,int2)',
1927 amopmethod => 'brin' },
1928 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2',
1929 amoprighttype => 'int2', amopstrategy => '5', amopopr => '>(int2,int2)',
1930 amopmethod => 'brin' },
1932 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2',
1933 amoprighttype => 'int8', amopstrategy => '1', amopopr => '<(int2,int8)',
1934 amopmethod => 'brin' },
1935 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2',
1936 amoprighttype => 'int8', amopstrategy => '2', amopopr => '<=(int2,int8)',
1937 amopmethod => 'brin' },
1938 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2',
1939 amoprighttype => 'int8', amopstrategy => '3', amopopr => '=(int2,int8)',
1940 amopmethod => 'brin' },
1941 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2',
1942 amoprighttype => 'int8', amopstrategy => '4', amopopr => '>=(int2,int8)',
1943 amopmethod => 'brin' },
1944 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2',
1945 amoprighttype => 'int8', amopstrategy => '5', amopopr => '>(int2,int8)',
1946 amopmethod => 'brin' },
1948 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2',
1949 amoprighttype => 'int4', amopstrategy => '1', amopopr => '<(int2,int4)',
1950 amopmethod => 'brin' },
1951 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2',
1952 amoprighttype => 'int4', amopstrategy => '2', amopopr => '<=(int2,int4)',
1953 amopmethod => 'brin' },
1954 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2',
1955 amoprighttype => 'int4', amopstrategy => '3', amopopr => '=(int2,int4)',
1956 amopmethod => 'brin' },
1957 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2',
1958 amoprighttype => 'int4', amopstrategy => '4', amopopr => '>=(int2,int4)',
1959 amopmethod => 'brin' },
1960 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int2',
1961 amoprighttype => 'int4', amopstrategy => '5', amopopr => '>(int2,int4)',
1962 amopmethod => 'brin' },
1964 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4',
1965 amoprighttype => 'int4', amopstrategy => '1', amopopr => '<(int4,int4)',
1966 amopmethod => 'brin' },
1967 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4',
1968 amoprighttype => 'int4', amopstrategy => '2', amopopr => '<=(int4,int4)',
1969 amopmethod => 'brin' },
1970 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4',
1971 amoprighttype => 'int4', amopstrategy => '3', amopopr => '=(int4,int4)',
1972 amopmethod => 'brin' },
1973 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4',
1974 amoprighttype => 'int4', amopstrategy => '4', amopopr => '>=(int4,int4)',
1975 amopmethod => 'brin' },
1976 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4',
1977 amoprighttype => 'int4', amopstrategy => '5', amopopr => '>(int4,int4)',
1978 amopmethod => 'brin' },
1980 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4',
1981 amoprighttype => 'int2', amopstrategy => '1', amopopr => '<(int4,int2)',
1982 amopmethod => 'brin' },
1983 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4',
1984 amoprighttype => 'int2', amopstrategy => '2', amopopr => '<=(int4,int2)',
1985 amopmethod => 'brin' },
1986 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4',
1987 amoprighttype => 'int2', amopstrategy => '3', amopopr => '=(int4,int2)',
1988 amopmethod => 'brin' },
1989 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4',
1990 amoprighttype => 'int2', amopstrategy => '4', amopopr => '>=(int4,int2)',
1991 amopmethod => 'brin' },
1992 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4',
1993 amoprighttype => 'int2', amopstrategy => '5', amopopr => '>(int4,int2)',
1994 amopmethod => 'brin' },
1996 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4',
1997 amoprighttype => 'int8', amopstrategy => '1', amopopr => '<(int4,int8)',
1998 amopmethod => 'brin' },
1999 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4',
2000 amoprighttype => 'int8', amopstrategy => '2', amopopr => '<=(int4,int8)',
2001 amopmethod => 'brin' },
2002 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4',
2003 amoprighttype => 'int8', amopstrategy => '3', amopopr => '=(int4,int8)',
2004 amopmethod => 'brin' },
2005 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4',
2006 amoprighttype => 'int8', amopstrategy => '4', amopopr => '>=(int4,int8)',
2007 amopmethod => 'brin' },
2008 { amopfamily => 'brin/integer_minmax_ops', amoplefttype => 'int4',
2009 amoprighttype => 'int8', amopstrategy => '5', amopopr => '>(int4,int8)',
2010 amopmethod => 'brin' },
2012 # minmax multi integer
2014 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int8',
2015 amoprighttype => 'int8', amopstrategy => '1', amopopr => '<(int8,int8)',
2016 amopmethod => 'brin' },
2017 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int8',
2018 amoprighttype => 'int8', amopstrategy => '2', amopopr => '<=(int8,int8)',
2019 amopmethod => 'brin' },
2020 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int8',
2021 amoprighttype => 'int8', amopstrategy => '3', amopopr => '=(int8,int8)',
2022 amopmethod => 'brin' },
2023 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int8',
2024 amoprighttype => 'int8', amopstrategy => '4', amopopr => '>=(int8,int8)',
2025 amopmethod => 'brin' },
2026 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int8',
2027 amoprighttype => 'int8', amopstrategy => '5', amopopr => '>(int8,int8)',
2028 amopmethod => 'brin' },
2030 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int8',
2031 amoprighttype => 'int2', amopstrategy => '1', amopopr => '<(int8,int2)',
2032 amopmethod => 'brin' },
2033 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int8',
2034 amoprighttype => 'int2', amopstrategy => '2', amopopr => '<=(int8,int2)',
2035 amopmethod => 'brin' },
2036 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int8',
2037 amoprighttype => 'int2', amopstrategy => '3', amopopr => '=(int8,int2)',
2038 amopmethod => 'brin' },
2039 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int8',
2040 amoprighttype => 'int2', amopstrategy => '4', amopopr => '>=(int8,int2)',
2041 amopmethod => 'brin' },
2042 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int8',
2043 amoprighttype => 'int2', amopstrategy => '5', amopopr => '>(int8,int2)',
2044 amopmethod => 'brin' },
2046 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int8',
2047 amoprighttype => 'int4', amopstrategy => '1', amopopr => '<(int8,int4)',
2048 amopmethod => 'brin' },
2049 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int8',
2050 amoprighttype => 'int4', amopstrategy => '2', amopopr => '<=(int8,int4)',
2051 amopmethod => 'brin' },
2052 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int8',
2053 amoprighttype => 'int4', amopstrategy => '3', amopopr => '=(int8,int4)',
2054 amopmethod => 'brin' },
2055 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int8',
2056 amoprighttype => 'int4', amopstrategy => '4', amopopr => '>=(int8,int4)',
2057 amopmethod => 'brin' },
2058 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int8',
2059 amoprighttype => 'int4', amopstrategy => '5', amopopr => '>(int8,int4)',
2060 amopmethod => 'brin' },
2062 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int2',
2063 amoprighttype => 'int2', amopstrategy => '1', amopopr => '<(int2,int2)',
2064 amopmethod => 'brin' },
2065 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int2',
2066 amoprighttype => 'int2', amopstrategy => '2', amopopr => '<=(int2,int2)',
2067 amopmethod => 'brin' },
2068 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int2',
2069 amoprighttype => 'int2', amopstrategy => '3', amopopr => '=(int2,int2)',
2070 amopmethod => 'brin' },
2071 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int2',
2072 amoprighttype => 'int2', amopstrategy => '4', amopopr => '>=(int2,int2)',
2073 amopmethod => 'brin' },
2074 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int2',
2075 amoprighttype => 'int2', amopstrategy => '5', amopopr => '>(int2,int2)',
2076 amopmethod => 'brin' },
2078 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int2',
2079 amoprighttype => 'int8', amopstrategy => '1', amopopr => '<(int2,int8)',
2080 amopmethod => 'brin' },
2081 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int2',
2082 amoprighttype => 'int8', amopstrategy => '2', amopopr => '<=(int2,int8)',
2083 amopmethod => 'brin' },
2084 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int2',
2085 amoprighttype => 'int8', amopstrategy => '3', amopopr => '=(int2,int8)',
2086 amopmethod => 'brin' },
2087 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int2',
2088 amoprighttype => 'int8', amopstrategy => '4', amopopr => '>=(int2,int8)',
2089 amopmethod => 'brin' },
2090 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int2',
2091 amoprighttype => 'int8', amopstrategy => '5', amopopr => '>(int2,int8)',
2092 amopmethod => 'brin' },
2094 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int2',
2095 amoprighttype => 'int4', amopstrategy => '1', amopopr => '<(int2,int4)',
2096 amopmethod => 'brin' },
2097 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int2',
2098 amoprighttype => 'int4', amopstrategy => '2', amopopr => '<=(int2,int4)',
2099 amopmethod => 'brin' },
2100 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int2',
2101 amoprighttype => 'int4', amopstrategy => '3', amopopr => '=(int2,int4)',
2102 amopmethod => 'brin' },
2103 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int2',
2104 amoprighttype => 'int4', amopstrategy => '4', amopopr => '>=(int2,int4)',
2105 amopmethod => 'brin' },
2106 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int2',
2107 amoprighttype => 'int4', amopstrategy => '5', amopopr => '>(int2,int4)',
2108 amopmethod => 'brin' },
2110 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int4',
2111 amoprighttype => 'int4', amopstrategy => '1', amopopr => '<(int4,int4)',
2112 amopmethod => 'brin' },
2113 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int4',
2114 amoprighttype => 'int4', amopstrategy => '2', amopopr => '<=(int4,int4)',
2115 amopmethod => 'brin' },
2116 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int4',
2117 amoprighttype => 'int4', amopstrategy => '3', amopopr => '=(int4,int4)',
2118 amopmethod => 'brin' },
2119 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int4',
2120 amoprighttype => 'int4', amopstrategy => '4', amopopr => '>=(int4,int4)',
2121 amopmethod => 'brin' },
2122 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int4',
2123 amoprighttype => 'int4', amopstrategy => '5', amopopr => '>(int4,int4)',
2124 amopmethod => 'brin' },
2126 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int4',
2127 amoprighttype => 'int2', amopstrategy => '1', amopopr => '<(int4,int2)',
2128 amopmethod => 'brin' },
2129 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int4',
2130 amoprighttype => 'int2', amopstrategy => '2', amopopr => '<=(int4,int2)',
2131 amopmethod => 'brin' },
2132 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int4',
2133 amoprighttype => 'int2', amopstrategy => '3', amopopr => '=(int4,int2)',
2134 amopmethod => 'brin' },
2135 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int4',
2136 amoprighttype => 'int2', amopstrategy => '4', amopopr => '>=(int4,int2)',
2137 amopmethod => 'brin' },
2138 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int4',
2139 amoprighttype => 'int2', amopstrategy => '5', amopopr => '>(int4,int2)',
2140 amopmethod => 'brin' },
2142 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int4',
2143 amoprighttype => 'int8', amopstrategy => '1', amopopr => '<(int4,int8)',
2144 amopmethod => 'brin' },
2145 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int4',
2146 amoprighttype => 'int8', amopstrategy => '2', amopopr => '<=(int4,int8)',
2147 amopmethod => 'brin' },
2148 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int4',
2149 amoprighttype => 'int8', amopstrategy => '3', amopopr => '=(int4,int8)',
2150 amopmethod => 'brin' },
2151 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int4',
2152 amoprighttype => 'int8', amopstrategy => '4', amopopr => '>=(int4,int8)',
2153 amopmethod => 'brin' },
2154 { amopfamily => 'brin/integer_minmax_multi_ops', amoplefttype => 'int4',
2155 amoprighttype => 'int8', amopstrategy => '5', amopopr => '>(int4,int8)',
2156 amopmethod => 'brin' },
2158 # bloom integer
2160 { amopfamily => 'brin/integer_bloom_ops', amoplefttype => 'int8',
2161 amoprighttype => 'int8', amopstrategy => '1', amopopr => '=(int8,int8)',
2162 amopmethod => 'brin' },
2164 { amopfamily => 'brin/integer_bloom_ops', amoplefttype => 'int2',
2165 amoprighttype => 'int2', amopstrategy => '1', amopopr => '=(int2,int2)',
2166 amopmethod => 'brin' },
2168 { amopfamily => 'brin/integer_bloom_ops', amoplefttype => 'int4',
2169 amoprighttype => 'int4', amopstrategy => '1', amopopr => '=(int4,int4)',
2170 amopmethod => 'brin' },
2172 # minmax text
2173 { amopfamily => 'brin/text_minmax_ops', amoplefttype => 'text',
2174 amoprighttype => 'text', amopstrategy => '1', amopopr => '<(text,text)',
2175 amopmethod => 'brin' },
2176 { amopfamily => 'brin/text_minmax_ops', amoplefttype => 'text',
2177 amoprighttype => 'text', amopstrategy => '2', amopopr => '<=(text,text)',
2178 amopmethod => 'brin' },
2179 { amopfamily => 'brin/text_minmax_ops', amoplefttype => 'text',
2180 amoprighttype => 'text', amopstrategy => '3', amopopr => '=(text,text)',
2181 amopmethod => 'brin' },
2182 { amopfamily => 'brin/text_minmax_ops', amoplefttype => 'text',
2183 amoprighttype => 'text', amopstrategy => '4', amopopr => '>=(text,text)',
2184 amopmethod => 'brin' },
2185 { amopfamily => 'brin/text_minmax_ops', amoplefttype => 'text',
2186 amoprighttype => 'text', amopstrategy => '5', amopopr => '>(text,text)',
2187 amopmethod => 'brin' },
2189 # bloom text
2190 { amopfamily => 'brin/text_bloom_ops', amoplefttype => 'text',
2191 amoprighttype => 'text', amopstrategy => '1', amopopr => '=(text,text)',
2192 amopmethod => 'brin' },
2194 # minmax oid
2195 { amopfamily => 'brin/oid_minmax_ops', amoplefttype => 'oid',
2196 amoprighttype => 'oid', amopstrategy => '1', amopopr => '<(oid,oid)',
2197 amopmethod => 'brin' },
2198 { amopfamily => 'brin/oid_minmax_ops', amoplefttype => 'oid',
2199 amoprighttype => 'oid', amopstrategy => '2', amopopr => '<=(oid,oid)',
2200 amopmethod => 'brin' },
2201 { amopfamily => 'brin/oid_minmax_ops', amoplefttype => 'oid',
2202 amoprighttype => 'oid', amopstrategy => '3', amopopr => '=(oid,oid)',
2203 amopmethod => 'brin' },
2204 { amopfamily => 'brin/oid_minmax_ops', amoplefttype => 'oid',
2205 amoprighttype => 'oid', amopstrategy => '4', amopopr => '>=(oid,oid)',
2206 amopmethod => 'brin' },
2207 { amopfamily => 'brin/oid_minmax_ops', amoplefttype => 'oid',
2208 amoprighttype => 'oid', amopstrategy => '5', amopopr => '>(oid,oid)',
2209 amopmethod => 'brin' },
2211 # minmax multi oid
2212 { amopfamily => 'brin/oid_minmax_multi_ops', amoplefttype => 'oid',
2213 amoprighttype => 'oid', amopstrategy => '1', amopopr => '<(oid,oid)',
2214 amopmethod => 'brin' },
2215 { amopfamily => 'brin/oid_minmax_multi_ops', amoplefttype => 'oid',
2216 amoprighttype => 'oid', amopstrategy => '2', amopopr => '<=(oid,oid)',
2217 amopmethod => 'brin' },
2218 { amopfamily => 'brin/oid_minmax_multi_ops', amoplefttype => 'oid',
2219 amoprighttype => 'oid', amopstrategy => '3', amopopr => '=(oid,oid)',
2220 amopmethod => 'brin' },
2221 { amopfamily => 'brin/oid_minmax_multi_ops', amoplefttype => 'oid',
2222 amoprighttype => 'oid', amopstrategy => '4', amopopr => '>=(oid,oid)',
2223 amopmethod => 'brin' },
2224 { amopfamily => 'brin/oid_minmax_multi_ops', amoplefttype => 'oid',
2225 amoprighttype => 'oid', amopstrategy => '5', amopopr => '>(oid,oid)',
2226 amopmethod => 'brin' },
2228 # bloom oid
2229 { amopfamily => 'brin/oid_bloom_ops', amoplefttype => 'oid',
2230 amoprighttype => 'oid', amopstrategy => '1', amopopr => '=(oid,oid)',
2231 amopmethod => 'brin' },
2233 # minmax tid
2234 { amopfamily => 'brin/tid_minmax_ops', amoplefttype => 'tid',
2235 amoprighttype => 'tid', amopstrategy => '1', amopopr => '<(tid,tid)',
2236 amopmethod => 'brin' },
2237 { amopfamily => 'brin/tid_minmax_ops', amoplefttype => 'tid',
2238 amoprighttype => 'tid', amopstrategy => '2', amopopr => '<=(tid,tid)',
2239 amopmethod => 'brin' },
2240 { amopfamily => 'brin/tid_minmax_ops', amoplefttype => 'tid',
2241 amoprighttype => 'tid', amopstrategy => '3', amopopr => '=(tid,tid)',
2242 amopmethod => 'brin' },
2243 { amopfamily => 'brin/tid_minmax_ops', amoplefttype => 'tid',
2244 amoprighttype => 'tid', amopstrategy => '4', amopopr => '>=(tid,tid)',
2245 amopmethod => 'brin' },
2246 { amopfamily => 'brin/tid_minmax_ops', amoplefttype => 'tid',
2247 amoprighttype => 'tid', amopstrategy => '5', amopopr => '>(tid,tid)',
2248 amopmethod => 'brin' },
2250 # tid oid
2251 { amopfamily => 'brin/tid_bloom_ops', amoplefttype => 'tid',
2252 amoprighttype => 'tid', amopstrategy => '1', amopopr => '=(tid,tid)',
2253 amopmethod => 'brin' },
2254 # minmax multi tid
2255 { amopfamily => 'brin/tid_minmax_multi_ops', amoplefttype => 'tid',
2256 amoprighttype => 'tid', amopstrategy => '1', amopopr => '<(tid,tid)',
2257 amopmethod => 'brin' },
2258 { amopfamily => 'brin/tid_minmax_multi_ops', amoplefttype => 'tid',
2259 amoprighttype => 'tid', amopstrategy => '2', amopopr => '<=(tid,tid)',
2260 amopmethod => 'brin' },
2261 { amopfamily => 'brin/tid_minmax_multi_ops', amoplefttype => 'tid',
2262 amoprighttype => 'tid', amopstrategy => '3', amopopr => '=(tid,tid)',
2263 amopmethod => 'brin' },
2264 { amopfamily => 'brin/tid_minmax_multi_ops', amoplefttype => 'tid',
2265 amoprighttype => 'tid', amopstrategy => '4', amopopr => '>=(tid,tid)',
2266 amopmethod => 'brin' },
2267 { amopfamily => 'brin/tid_minmax_multi_ops', amoplefttype => 'tid',
2268 amoprighttype => 'tid', amopstrategy => '5', amopopr => '>(tid,tid)',
2269 amopmethod => 'brin' },
2271 # minmax float (float4, float8)
2273 { amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float4',
2274 amoprighttype => 'float4', amopstrategy => '1', amopopr => '<(float4,float4)',
2275 amopmethod => 'brin' },
2276 { amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float4',
2277 amoprighttype => 'float4', amopstrategy => '2',
2278 amopopr => '<=(float4,float4)', amopmethod => 'brin' },
2279 { amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float4',
2280 amoprighttype => 'float4', amopstrategy => '3', amopopr => '=(float4,float4)',
2281 amopmethod => 'brin' },
2282 { amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float4',
2283 amoprighttype => 'float4', amopstrategy => '4',
2284 amopopr => '>=(float4,float4)', amopmethod => 'brin' },
2285 { amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float4',
2286 amoprighttype => 'float4', amopstrategy => '5', amopopr => '>(float4,float4)',
2287 amopmethod => 'brin' },
2289 { amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float4',
2290 amoprighttype => 'float8', amopstrategy => '1', amopopr => '<(float4,float8)',
2291 amopmethod => 'brin' },
2292 { amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float4',
2293 amoprighttype => 'float8', amopstrategy => '2',
2294 amopopr => '<=(float4,float8)', amopmethod => 'brin' },
2295 { amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float4',
2296 amoprighttype => 'float8', amopstrategy => '3', amopopr => '=(float4,float8)',
2297 amopmethod => 'brin' },
2298 { amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float4',
2299 amoprighttype => 'float8', amopstrategy => '4',
2300 amopopr => '>=(float4,float8)', amopmethod => 'brin' },
2301 { amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float4',
2302 amoprighttype => 'float8', amopstrategy => '5', amopopr => '>(float4,float8)',
2303 amopmethod => 'brin' },
2305 { amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float8',
2306 amoprighttype => 'float4', amopstrategy => '1', amopopr => '<(float8,float4)',
2307 amopmethod => 'brin' },
2308 { amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float8',
2309 amoprighttype => 'float4', amopstrategy => '2',
2310 amopopr => '<=(float8,float4)', amopmethod => 'brin' },
2311 { amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float8',
2312 amoprighttype => 'float4', amopstrategy => '3', amopopr => '=(float8,float4)',
2313 amopmethod => 'brin' },
2314 { amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float8',
2315 amoprighttype => 'float4', amopstrategy => '4',
2316 amopopr => '>=(float8,float4)', amopmethod => 'brin' },
2317 { amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float8',
2318 amoprighttype => 'float4', amopstrategy => '5', amopopr => '>(float8,float4)',
2319 amopmethod => 'brin' },
2321 { amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float8',
2322 amoprighttype => 'float8', amopstrategy => '1', amopopr => '<(float8,float8)',
2323 amopmethod => 'brin' },
2324 { amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float8',
2325 amoprighttype => 'float8', amopstrategy => '2',
2326 amopopr => '<=(float8,float8)', amopmethod => 'brin' },
2327 { amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float8',
2328 amoprighttype => 'float8', amopstrategy => '3', amopopr => '=(float8,float8)',
2329 amopmethod => 'brin' },
2330 { amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float8',
2331 amoprighttype => 'float8', amopstrategy => '4',
2332 amopopr => '>=(float8,float8)', amopmethod => 'brin' },
2333 { amopfamily => 'brin/float_minmax_ops', amoplefttype => 'float8',
2334 amoprighttype => 'float8', amopstrategy => '5', amopopr => '>(float8,float8)',
2335 amopmethod => 'brin' },
2337 # minmax multi float (float4, float8)
2339 { amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float4',
2340 amoprighttype => 'float4', amopstrategy => '1', amopopr => '<(float4,float4)',
2341 amopmethod => 'brin' },
2342 { amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float4',
2343 amoprighttype => 'float4', amopstrategy => '2',
2344 amopopr => '<=(float4,float4)', amopmethod => 'brin' },
2345 { amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float4',
2346 amoprighttype => 'float4', amopstrategy => '3', amopopr => '=(float4,float4)',
2347 amopmethod => 'brin' },
2348 { amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float4',
2349 amoprighttype => 'float4', amopstrategy => '4',
2350 amopopr => '>=(float4,float4)', amopmethod => 'brin' },
2351 { amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float4',
2352 amoprighttype => 'float4', amopstrategy => '5', amopopr => '>(float4,float4)',
2353 amopmethod => 'brin' },
2355 { amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float4',
2356 amoprighttype => 'float8', amopstrategy => '1', amopopr => '<(float4,float8)',
2357 amopmethod => 'brin' },
2358 { amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float4',
2359 amoprighttype => 'float8', amopstrategy => '2',
2360 amopopr => '<=(float4,float8)', amopmethod => 'brin' },
2361 { amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float4',
2362 amoprighttype => 'float8', amopstrategy => '3', amopopr => '=(float4,float8)',
2363 amopmethod => 'brin' },
2364 { amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float4',
2365 amoprighttype => 'float8', amopstrategy => '4',
2366 amopopr => '>=(float4,float8)', amopmethod => 'brin' },
2367 { amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float4',
2368 amoprighttype => 'float8', amopstrategy => '5', amopopr => '>(float4,float8)',
2369 amopmethod => 'brin' },
2371 { amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float8',
2372 amoprighttype => 'float4', amopstrategy => '1', amopopr => '<(float8,float4)',
2373 amopmethod => 'brin' },
2374 { amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float8',
2375 amoprighttype => 'float4', amopstrategy => '2',
2376 amopopr => '<=(float8,float4)', amopmethod => 'brin' },
2377 { amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float8',
2378 amoprighttype => 'float4', amopstrategy => '3', amopopr => '=(float8,float4)',
2379 amopmethod => 'brin' },
2380 { amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float8',
2381 amoprighttype => 'float4', amopstrategy => '4',
2382 amopopr => '>=(float8,float4)', amopmethod => 'brin' },
2383 { amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float8',
2384 amoprighttype => 'float4', amopstrategy => '5', amopopr => '>(float8,float4)',
2385 amopmethod => 'brin' },
2387 { amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float8',
2388 amoprighttype => 'float8', amopstrategy => '1', amopopr => '<(float8,float8)',
2389 amopmethod => 'brin' },
2390 { amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float8',
2391 amoprighttype => 'float8', amopstrategy => '2',
2392 amopopr => '<=(float8,float8)', amopmethod => 'brin' },
2393 { amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float8',
2394 amoprighttype => 'float8', amopstrategy => '3', amopopr => '=(float8,float8)',
2395 amopmethod => 'brin' },
2396 { amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float8',
2397 amoprighttype => 'float8', amopstrategy => '4',
2398 amopopr => '>=(float8,float8)', amopmethod => 'brin' },
2399 { amopfamily => 'brin/float_minmax_multi_ops', amoplefttype => 'float8',
2400 amoprighttype => 'float8', amopstrategy => '5', amopopr => '>(float8,float8)',
2401 amopmethod => 'brin' },
2403 # bloom float
2404 { amopfamily => 'brin/float_bloom_ops', amoplefttype => 'float4',
2405 amoprighttype => 'float4', amopstrategy => '1', amopopr => '=(float4,float4)',
2406 amopmethod => 'brin' },
2407 { amopfamily => 'brin/float_bloom_ops', amoplefttype => 'float8',
2408 amoprighttype => 'float8', amopstrategy => '1', amopopr => '=(float8,float8)',
2409 amopmethod => 'brin' },
2411 # minmax macaddr
2412 { amopfamily => 'brin/macaddr_minmax_ops', amoplefttype => 'macaddr',
2413 amoprighttype => 'macaddr', amopstrategy => '1',
2414 amopopr => '<(macaddr,macaddr)', amopmethod => 'brin' },
2415 { amopfamily => 'brin/macaddr_minmax_ops', amoplefttype => 'macaddr',
2416 amoprighttype => 'macaddr', amopstrategy => '2',
2417 amopopr => '<=(macaddr,macaddr)', amopmethod => 'brin' },
2418 { amopfamily => 'brin/macaddr_minmax_ops', amoplefttype => 'macaddr',
2419 amoprighttype => 'macaddr', amopstrategy => '3',
2420 amopopr => '=(macaddr,macaddr)', amopmethod => 'brin' },
2421 { amopfamily => 'brin/macaddr_minmax_ops', amoplefttype => 'macaddr',
2422 amoprighttype => 'macaddr', amopstrategy => '4',
2423 amopopr => '>=(macaddr,macaddr)', amopmethod => 'brin' },
2424 { amopfamily => 'brin/macaddr_minmax_ops', amoplefttype => 'macaddr',
2425 amoprighttype => 'macaddr', amopstrategy => '5',
2426 amopopr => '>(macaddr,macaddr)', amopmethod => 'brin' },
2428 # minmax multi macaddr
2429 { amopfamily => 'brin/macaddr_minmax_multi_ops', amoplefttype => 'macaddr',
2430 amoprighttype => 'macaddr', amopstrategy => '1',
2431 amopopr => '<(macaddr,macaddr)', amopmethod => 'brin' },
2432 { amopfamily => 'brin/macaddr_minmax_multi_ops', amoplefttype => 'macaddr',
2433 amoprighttype => 'macaddr', amopstrategy => '2',
2434 amopopr => '<=(macaddr,macaddr)', amopmethod => 'brin' },
2435 { amopfamily => 'brin/macaddr_minmax_multi_ops', amoplefttype => 'macaddr',
2436 amoprighttype => 'macaddr', amopstrategy => '3',
2437 amopopr => '=(macaddr,macaddr)', amopmethod => 'brin' },
2438 { amopfamily => 'brin/macaddr_minmax_multi_ops', amoplefttype => 'macaddr',
2439 amoprighttype => 'macaddr', amopstrategy => '4',
2440 amopopr => '>=(macaddr,macaddr)', amopmethod => 'brin' },
2441 { amopfamily => 'brin/macaddr_minmax_multi_ops', amoplefttype => 'macaddr',
2442 amoprighttype => 'macaddr', amopstrategy => '5',
2443 amopopr => '>(macaddr,macaddr)', amopmethod => 'brin' },
2445 # bloom macaddr
2446 { amopfamily => 'brin/macaddr_bloom_ops', amoplefttype => 'macaddr',
2447 amoprighttype => 'macaddr', amopstrategy => '1',
2448 amopopr => '=(macaddr,macaddr)', amopmethod => 'brin' },
2450 # minmax macaddr8
2451 { amopfamily => 'brin/macaddr8_minmax_ops', amoplefttype => 'macaddr8',
2452 amoprighttype => 'macaddr8', amopstrategy => '1',
2453 amopopr => '<(macaddr8,macaddr8)', amopmethod => 'brin' },
2454 { amopfamily => 'brin/macaddr8_minmax_ops', amoplefttype => 'macaddr8',
2455 amoprighttype => 'macaddr8', amopstrategy => '2',
2456 amopopr => '<=(macaddr8,macaddr8)', amopmethod => 'brin' },
2457 { amopfamily => 'brin/macaddr8_minmax_ops', amoplefttype => 'macaddr8',
2458 amoprighttype => 'macaddr8', amopstrategy => '3',
2459 amopopr => '=(macaddr8,macaddr8)', amopmethod => 'brin' },
2460 { amopfamily => 'brin/macaddr8_minmax_ops', amoplefttype => 'macaddr8',
2461 amoprighttype => 'macaddr8', amopstrategy => '4',
2462 amopopr => '>=(macaddr8,macaddr8)', amopmethod => 'brin' },
2463 { amopfamily => 'brin/macaddr8_minmax_ops', amoplefttype => 'macaddr8',
2464 amoprighttype => 'macaddr8', amopstrategy => '5',
2465 amopopr => '>(macaddr8,macaddr8)', amopmethod => 'brin' },
2467 # minmax multi macaddr8
2468 { amopfamily => 'brin/macaddr8_minmax_multi_ops', amoplefttype => 'macaddr8',
2469 amoprighttype => 'macaddr8', amopstrategy => '1',
2470 amopopr => '<(macaddr8,macaddr8)', amopmethod => 'brin' },
2471 { amopfamily => 'brin/macaddr8_minmax_multi_ops', amoplefttype => 'macaddr8',
2472 amoprighttype => 'macaddr8', amopstrategy => '2',
2473 amopopr => '<=(macaddr8,macaddr8)', amopmethod => 'brin' },
2474 { amopfamily => 'brin/macaddr8_minmax_multi_ops', amoplefttype => 'macaddr8',
2475 amoprighttype => 'macaddr8', amopstrategy => '3',
2476 amopopr => '=(macaddr8,macaddr8)', amopmethod => 'brin' },
2477 { amopfamily => 'brin/macaddr8_minmax_multi_ops', amoplefttype => 'macaddr8',
2478 amoprighttype => 'macaddr8', amopstrategy => '4',
2479 amopopr => '>=(macaddr8,macaddr8)', amopmethod => 'brin' },
2480 { amopfamily => 'brin/macaddr8_minmax_multi_ops', amoplefttype => 'macaddr8',
2481 amoprighttype => 'macaddr8', amopstrategy => '5',
2482 amopopr => '>(macaddr8,macaddr8)', amopmethod => 'brin' },
2484 # bloom macaddr8
2485 { amopfamily => 'brin/macaddr8_bloom_ops', amoplefttype => 'macaddr8',
2486 amoprighttype => 'macaddr8', amopstrategy => '1',
2487 amopopr => '=(macaddr8,macaddr8)', amopmethod => 'brin' },
2489 # minmax inet
2490 { amopfamily => 'brin/network_minmax_ops', amoplefttype => 'inet',
2491 amoprighttype => 'inet', amopstrategy => '1', amopopr => '<(inet,inet)',
2492 amopmethod => 'brin' },
2493 { amopfamily => 'brin/network_minmax_ops', amoplefttype => 'inet',
2494 amoprighttype => 'inet', amopstrategy => '2', amopopr => '<=(inet,inet)',
2495 amopmethod => 'brin' },
2496 { amopfamily => 'brin/network_minmax_ops', amoplefttype => 'inet',
2497 amoprighttype => 'inet', amopstrategy => '3', amopopr => '=(inet,inet)',
2498 amopmethod => 'brin' },
2499 { amopfamily => 'brin/network_minmax_ops', amoplefttype => 'inet',
2500 amoprighttype => 'inet', amopstrategy => '4', amopopr => '>=(inet,inet)',
2501 amopmethod => 'brin' },
2502 { amopfamily => 'brin/network_minmax_ops', amoplefttype => 'inet',
2503 amoprighttype => 'inet', amopstrategy => '5', amopopr => '>(inet,inet)',
2504 amopmethod => 'brin' },
2506 # minmax multi inet
2507 { amopfamily => 'brin/network_minmax_multi_ops', amoplefttype => 'inet',
2508 amoprighttype => 'inet', amopstrategy => '1', amopopr => '<(inet,inet)',
2509 amopmethod => 'brin' },
2510 { amopfamily => 'brin/network_minmax_multi_ops', amoplefttype => 'inet',
2511 amoprighttype => 'inet', amopstrategy => '2', amopopr => '<=(inet,inet)',
2512 amopmethod => 'brin' },
2513 { amopfamily => 'brin/network_minmax_multi_ops', amoplefttype => 'inet',
2514 amoprighttype => 'inet', amopstrategy => '3', amopopr => '=(inet,inet)',
2515 amopmethod => 'brin' },
2516 { amopfamily => 'brin/network_minmax_multi_ops', amoplefttype => 'inet',
2517 amoprighttype => 'inet', amopstrategy => '4', amopopr => '>=(inet,inet)',
2518 amopmethod => 'brin' },
2519 { amopfamily => 'brin/network_minmax_multi_ops', amoplefttype => 'inet',
2520 amoprighttype => 'inet', amopstrategy => '5', amopopr => '>(inet,inet)',
2521 amopmethod => 'brin' },
2523 # bloom inet
2524 { amopfamily => 'brin/network_bloom_ops', amoplefttype => 'inet',
2525 amoprighttype => 'inet', amopstrategy => '1', amopopr => '=(inet,inet)',
2526 amopmethod => 'brin' },
2528 # inclusion inet
2529 { amopfamily => 'brin/network_inclusion_ops', amoplefttype => 'inet',
2530 amoprighttype => 'inet', amopstrategy => '3', amopopr => '&&(inet,inet)',
2531 amopmethod => 'brin' },
2532 { amopfamily => 'brin/network_inclusion_ops', amoplefttype => 'inet',
2533 amoprighttype => 'inet', amopstrategy => '7', amopopr => '>>=(inet,inet)',
2534 amopmethod => 'brin' },
2535 { amopfamily => 'brin/network_inclusion_ops', amoplefttype => 'inet',
2536 amoprighttype => 'inet', amopstrategy => '8', amopopr => '<<=(inet,inet)',
2537 amopmethod => 'brin' },
2538 { amopfamily => 'brin/network_inclusion_ops', amoplefttype => 'inet',
2539 amoprighttype => 'inet', amopstrategy => '18', amopopr => '=(inet,inet)',
2540 amopmethod => 'brin' },
2541 { amopfamily => 'brin/network_inclusion_ops', amoplefttype => 'inet',
2542 amoprighttype => 'inet', amopstrategy => '24', amopopr => '>>(inet,inet)',
2543 amopmethod => 'brin' },
2544 { amopfamily => 'brin/network_inclusion_ops', amoplefttype => 'inet',
2545 amoprighttype => 'inet', amopstrategy => '26', amopopr => '<<(inet,inet)',
2546 amopmethod => 'brin' },
2548 # minmax character
2549 { amopfamily => 'brin/bpchar_minmax_ops', amoplefttype => 'bpchar',
2550 amoprighttype => 'bpchar', amopstrategy => '1', amopopr => '<(bpchar,bpchar)',
2551 amopmethod => 'brin' },
2552 { amopfamily => 'brin/bpchar_minmax_ops', amoplefttype => 'bpchar',
2553 amoprighttype => 'bpchar', amopstrategy => '2',
2554 amopopr => '<=(bpchar,bpchar)', amopmethod => 'brin' },
2555 { amopfamily => 'brin/bpchar_minmax_ops', amoplefttype => 'bpchar',
2556 amoprighttype => 'bpchar', amopstrategy => '3', amopopr => '=(bpchar,bpchar)',
2557 amopmethod => 'brin' },
2558 { amopfamily => 'brin/bpchar_minmax_ops', amoplefttype => 'bpchar',
2559 amoprighttype => 'bpchar', amopstrategy => '4',
2560 amopopr => '>=(bpchar,bpchar)', amopmethod => 'brin' },
2561 { amopfamily => 'brin/bpchar_minmax_ops', amoplefttype => 'bpchar',
2562 amoprighttype => 'bpchar', amopstrategy => '5', amopopr => '>(bpchar,bpchar)',
2563 amopmethod => 'brin' },
2565 # bloom character
2566 { amopfamily => 'brin/bpchar_bloom_ops', amoplefttype => 'bpchar',
2567 amoprighttype => 'bpchar', amopstrategy => '1', amopopr => '=(bpchar,bpchar)',
2568 amopmethod => 'brin' },
2570 # minmax time without time zone
2571 { amopfamily => 'brin/time_minmax_ops', amoplefttype => 'time',
2572 amoprighttype => 'time', amopstrategy => '1', amopopr => '<(time,time)',
2573 amopmethod => 'brin' },
2574 { amopfamily => 'brin/time_minmax_ops', amoplefttype => 'time',
2575 amoprighttype => 'time', amopstrategy => '2', amopopr => '<=(time,time)',
2576 amopmethod => 'brin' },
2577 { amopfamily => 'brin/time_minmax_ops', amoplefttype => 'time',
2578 amoprighttype => 'time', amopstrategy => '3', amopopr => '=(time,time)',
2579 amopmethod => 'brin' },
2580 { amopfamily => 'brin/time_minmax_ops', amoplefttype => 'time',
2581 amoprighttype => 'time', amopstrategy => '4', amopopr => '>=(time,time)',
2582 amopmethod => 'brin' },
2583 { amopfamily => 'brin/time_minmax_ops', amoplefttype => 'time',
2584 amoprighttype => 'time', amopstrategy => '5', amopopr => '>(time,time)',
2585 amopmethod => 'brin' },
2587 # minmax multi time without time zone
2588 { amopfamily => 'brin/time_minmax_multi_ops', amoplefttype => 'time',
2589 amoprighttype => 'time', amopstrategy => '1', amopopr => '<(time,time)',
2590 amopmethod => 'brin' },
2591 { amopfamily => 'brin/time_minmax_multi_ops', amoplefttype => 'time',
2592 amoprighttype => 'time', amopstrategy => '2', amopopr => '<=(time,time)',
2593 amopmethod => 'brin' },
2594 { amopfamily => 'brin/time_minmax_multi_ops', amoplefttype => 'time',
2595 amoprighttype => 'time', amopstrategy => '3', amopopr => '=(time,time)',
2596 amopmethod => 'brin' },
2597 { amopfamily => 'brin/time_minmax_multi_ops', amoplefttype => 'time',
2598 amoprighttype => 'time', amopstrategy => '4', amopopr => '>=(time,time)',
2599 amopmethod => 'brin' },
2600 { amopfamily => 'brin/time_minmax_multi_ops', amoplefttype => 'time',
2601 amoprighttype => 'time', amopstrategy => '5', amopopr => '>(time,time)',
2602 amopmethod => 'brin' },
2604 # bloom time without time zone
2605 { amopfamily => 'brin/time_bloom_ops', amoplefttype => 'time',
2606 amoprighttype => 'time', amopstrategy => '1', amopopr => '=(time,time)',
2607 amopmethod => 'brin' },
2609 # minmax datetime (date, timestamp, timestamptz)
2611 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp',
2612 amoprighttype => 'timestamp', amopstrategy => '1',
2613 amopopr => '<(timestamp,timestamp)', amopmethod => 'brin' },
2614 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp',
2615 amoprighttype => 'timestamp', amopstrategy => '2',
2616 amopopr => '<=(timestamp,timestamp)', amopmethod => 'brin' },
2617 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp',
2618 amoprighttype => 'timestamp', amopstrategy => '3',
2619 amopopr => '=(timestamp,timestamp)', amopmethod => 'brin' },
2620 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp',
2621 amoprighttype => 'timestamp', amopstrategy => '4',
2622 amopopr => '>=(timestamp,timestamp)', amopmethod => 'brin' },
2623 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp',
2624 amoprighttype => 'timestamp', amopstrategy => '5',
2625 amopopr => '>(timestamp,timestamp)', amopmethod => 'brin' },
2627 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp',
2628 amoprighttype => 'date', amopstrategy => '1', amopopr => '<(timestamp,date)',
2629 amopmethod => 'brin' },
2630 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp',
2631 amoprighttype => 'date', amopstrategy => '2', amopopr => '<=(timestamp,date)',
2632 amopmethod => 'brin' },
2633 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp',
2634 amoprighttype => 'date', amopstrategy => '3', amopopr => '=(timestamp,date)',
2635 amopmethod => 'brin' },
2636 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp',
2637 amoprighttype => 'date', amopstrategy => '4', amopopr => '>=(timestamp,date)',
2638 amopmethod => 'brin' },
2639 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp',
2640 amoprighttype => 'date', amopstrategy => '5', amopopr => '>(timestamp,date)',
2641 amopmethod => 'brin' },
2643 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp',
2644 amoprighttype => 'timestamptz', amopstrategy => '1',
2645 amopopr => '<(timestamp,timestamptz)', amopmethod => 'brin' },
2646 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp',
2647 amoprighttype => 'timestamptz', amopstrategy => '2',
2648 amopopr => '<=(timestamp,timestamptz)', amopmethod => 'brin' },
2649 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp',
2650 amoprighttype => 'timestamptz', amopstrategy => '3',
2651 amopopr => '=(timestamp,timestamptz)', amopmethod => 'brin' },
2652 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp',
2653 amoprighttype => 'timestamptz', amopstrategy => '4',
2654 amopopr => '>=(timestamp,timestamptz)', amopmethod => 'brin' },
2655 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamp',
2656 amoprighttype => 'timestamptz', amopstrategy => '5',
2657 amopopr => '>(timestamp,timestamptz)', amopmethod => 'brin' },
2659 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date',
2660 amoprighttype => 'date', amopstrategy => '1', amopopr => '<(date,date)',
2661 amopmethod => 'brin' },
2662 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date',
2663 amoprighttype => 'date', amopstrategy => '2', amopopr => '<=(date,date)',
2664 amopmethod => 'brin' },
2665 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date',
2666 amoprighttype => 'date', amopstrategy => '3', amopopr => '=(date,date)',
2667 amopmethod => 'brin' },
2668 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date',
2669 amoprighttype => 'date', amopstrategy => '4', amopopr => '>=(date,date)',
2670 amopmethod => 'brin' },
2671 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date',
2672 amoprighttype => 'date', amopstrategy => '5', amopopr => '>(date,date)',
2673 amopmethod => 'brin' },
2675 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date',
2676 amoprighttype => 'timestamp', amopstrategy => '1',
2677 amopopr => '<(date,timestamp)', amopmethod => 'brin' },
2678 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date',
2679 amoprighttype => 'timestamp', amopstrategy => '2',
2680 amopopr => '<=(date,timestamp)', amopmethod => 'brin' },
2681 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date',
2682 amoprighttype => 'timestamp', amopstrategy => '3',
2683 amopopr => '=(date,timestamp)', amopmethod => 'brin' },
2684 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date',
2685 amoprighttype => 'timestamp', amopstrategy => '4',
2686 amopopr => '>=(date,timestamp)', amopmethod => 'brin' },
2687 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date',
2688 amoprighttype => 'timestamp', amopstrategy => '5',
2689 amopopr => '>(date,timestamp)', amopmethod => 'brin' },
2691 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date',
2692 amoprighttype => 'timestamptz', amopstrategy => '1',
2693 amopopr => '<(date,timestamptz)', amopmethod => 'brin' },
2694 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date',
2695 amoprighttype => 'timestamptz', amopstrategy => '2',
2696 amopopr => '<=(date,timestamptz)', amopmethod => 'brin' },
2697 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date',
2698 amoprighttype => 'timestamptz', amopstrategy => '3',
2699 amopopr => '=(date,timestamptz)', amopmethod => 'brin' },
2700 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date',
2701 amoprighttype => 'timestamptz', amopstrategy => '4',
2702 amopopr => '>=(date,timestamptz)', amopmethod => 'brin' },
2703 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'date',
2704 amoprighttype => 'timestamptz', amopstrategy => '5',
2705 amopopr => '>(date,timestamptz)', amopmethod => 'brin' },
2707 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz',
2708 amoprighttype => 'date', amopstrategy => '1',
2709 amopopr => '<(timestamptz,date)', amopmethod => 'brin' },
2710 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz',
2711 amoprighttype => 'date', amopstrategy => '2',
2712 amopopr => '<=(timestamptz,date)', amopmethod => 'brin' },
2713 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz',
2714 amoprighttype => 'date', amopstrategy => '3',
2715 amopopr => '=(timestamptz,date)', amopmethod => 'brin' },
2716 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz',
2717 amoprighttype => 'date', amopstrategy => '4',
2718 amopopr => '>=(timestamptz,date)', amopmethod => 'brin' },
2719 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz',
2720 amoprighttype => 'date', amopstrategy => '5',
2721 amopopr => '>(timestamptz,date)', amopmethod => 'brin' },
2723 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz',
2724 amoprighttype => 'timestamp', amopstrategy => '1',
2725 amopopr => '<(timestamptz,timestamp)', amopmethod => 'brin' },
2726 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz',
2727 amoprighttype => 'timestamp', amopstrategy => '2',
2728 amopopr => '<=(timestamptz,timestamp)', amopmethod => 'brin' },
2729 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz',
2730 amoprighttype => 'timestamp', amopstrategy => '3',
2731 amopopr => '=(timestamptz,timestamp)', amopmethod => 'brin' },
2732 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz',
2733 amoprighttype => 'timestamp', amopstrategy => '4',
2734 amopopr => '>=(timestamptz,timestamp)', amopmethod => 'brin' },
2735 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz',
2736 amoprighttype => 'timestamp', amopstrategy => '5',
2737 amopopr => '>(timestamptz,timestamp)', amopmethod => 'brin' },
2739 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz',
2740 amoprighttype => 'timestamptz', amopstrategy => '1',
2741 amopopr => '<(timestamptz,timestamptz)', amopmethod => 'brin' },
2742 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz',
2743 amoprighttype => 'timestamptz', amopstrategy => '2',
2744 amopopr => '<=(timestamptz,timestamptz)', amopmethod => 'brin' },
2745 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz',
2746 amoprighttype => 'timestamptz', amopstrategy => '3',
2747 amopopr => '=(timestamptz,timestamptz)', amopmethod => 'brin' },
2748 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz',
2749 amoprighttype => 'timestamptz', amopstrategy => '4',
2750 amopopr => '>=(timestamptz,timestamptz)', amopmethod => 'brin' },
2751 { amopfamily => 'brin/datetime_minmax_ops', amoplefttype => 'timestamptz',
2752 amoprighttype => 'timestamptz', amopstrategy => '5',
2753 amopopr => '>(timestamptz,timestamptz)', amopmethod => 'brin' },
2755 # minmax multi datetime (date, timestamp, timestamptz)
2757 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamp',
2758 amoprighttype => 'timestamp', amopstrategy => '1',
2759 amopopr => '<(timestamp,timestamp)', amopmethod => 'brin' },
2760 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamp',
2761 amoprighttype => 'timestamp', amopstrategy => '2',
2762 amopopr => '<=(timestamp,timestamp)', amopmethod => 'brin' },
2763 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamp',
2764 amoprighttype => 'timestamp', amopstrategy => '3',
2765 amopopr => '=(timestamp,timestamp)', amopmethod => 'brin' },
2766 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamp',
2767 amoprighttype => 'timestamp', amopstrategy => '4',
2768 amopopr => '>=(timestamp,timestamp)', amopmethod => 'brin' },
2769 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamp',
2770 amoprighttype => 'timestamp', amopstrategy => '5',
2771 amopopr => '>(timestamp,timestamp)', amopmethod => 'brin' },
2773 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamp',
2774 amoprighttype => 'date', amopstrategy => '1', amopopr => '<(timestamp,date)',
2775 amopmethod => 'brin' },
2776 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamp',
2777 amoprighttype => 'date', amopstrategy => '2', amopopr => '<=(timestamp,date)',
2778 amopmethod => 'brin' },
2779 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamp',
2780 amoprighttype => 'date', amopstrategy => '3', amopopr => '=(timestamp,date)',
2781 amopmethod => 'brin' },
2782 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamp',
2783 amoprighttype => 'date', amopstrategy => '4', amopopr => '>=(timestamp,date)',
2784 amopmethod => 'brin' },
2785 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamp',
2786 amoprighttype => 'date', amopstrategy => '5', amopopr => '>(timestamp,date)',
2787 amopmethod => 'brin' },
2789 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamp',
2790 amoprighttype => 'timestamptz', amopstrategy => '1',
2791 amopopr => '<(timestamp,timestamptz)', amopmethod => 'brin' },
2792 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamp',
2793 amoprighttype => 'timestamptz', amopstrategy => '2',
2794 amopopr => '<=(timestamp,timestamptz)', amopmethod => 'brin' },
2795 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamp',
2796 amoprighttype => 'timestamptz', amopstrategy => '3',
2797 amopopr => '=(timestamp,timestamptz)', amopmethod => 'brin' },
2798 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamp',
2799 amoprighttype => 'timestamptz', amopstrategy => '4',
2800 amopopr => '>=(timestamp,timestamptz)', amopmethod => 'brin' },
2801 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamp',
2802 amoprighttype => 'timestamptz', amopstrategy => '5',
2803 amopopr => '>(timestamp,timestamptz)', amopmethod => 'brin' },
2805 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'date',
2806 amoprighttype => 'date', amopstrategy => '1', amopopr => '<(date,date)',
2807 amopmethod => 'brin' },
2808 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'date',
2809 amoprighttype => 'date', amopstrategy => '2', amopopr => '<=(date,date)',
2810 amopmethod => 'brin' },
2811 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'date',
2812 amoprighttype => 'date', amopstrategy => '3', amopopr => '=(date,date)',
2813 amopmethod => 'brin' },
2814 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'date',
2815 amoprighttype => 'date', amopstrategy => '4', amopopr => '>=(date,date)',
2816 amopmethod => 'brin' },
2817 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'date',
2818 amoprighttype => 'date', amopstrategy => '5', amopopr => '>(date,date)',
2819 amopmethod => 'brin' },
2821 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'date',
2822 amoprighttype => 'timestamp', amopstrategy => '1',
2823 amopopr => '<(date,timestamp)', amopmethod => 'brin' },
2824 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'date',
2825 amoprighttype => 'timestamp', amopstrategy => '2',
2826 amopopr => '<=(date,timestamp)', amopmethod => 'brin' },
2827 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'date',
2828 amoprighttype => 'timestamp', amopstrategy => '3',
2829 amopopr => '=(date,timestamp)', amopmethod => 'brin' },
2830 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'date',
2831 amoprighttype => 'timestamp', amopstrategy => '4',
2832 amopopr => '>=(date,timestamp)', amopmethod => 'brin' },
2833 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'date',
2834 amoprighttype => 'timestamp', amopstrategy => '5',
2835 amopopr => '>(date,timestamp)', amopmethod => 'brin' },
2837 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'date',
2838 amoprighttype => 'timestamptz', amopstrategy => '1',
2839 amopopr => '<(date,timestamptz)', amopmethod => 'brin' },
2840 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'date',
2841 amoprighttype => 'timestamptz', amopstrategy => '2',
2842 amopopr => '<=(date,timestamptz)', amopmethod => 'brin' },
2843 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'date',
2844 amoprighttype => 'timestamptz', amopstrategy => '3',
2845 amopopr => '=(date,timestamptz)', amopmethod => 'brin' },
2846 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'date',
2847 amoprighttype => 'timestamptz', amopstrategy => '4',
2848 amopopr => '>=(date,timestamptz)', amopmethod => 'brin' },
2849 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'date',
2850 amoprighttype => 'timestamptz', amopstrategy => '5',
2851 amopopr => '>(date,timestamptz)', amopmethod => 'brin' },
2853 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamptz',
2854 amoprighttype => 'date', amopstrategy => '1',
2855 amopopr => '<(timestamptz,date)', amopmethod => 'brin' },
2856 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamptz',
2857 amoprighttype => 'date', amopstrategy => '2',
2858 amopopr => '<=(timestamptz,date)', amopmethod => 'brin' },
2859 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamptz',
2860 amoprighttype => 'date', amopstrategy => '3',
2861 amopopr => '=(timestamptz,date)', amopmethod => 'brin' },
2862 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamptz',
2863 amoprighttype => 'date', amopstrategy => '4',
2864 amopopr => '>=(timestamptz,date)', amopmethod => 'brin' },
2865 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamptz',
2866 amoprighttype => 'date', amopstrategy => '5',
2867 amopopr => '>(timestamptz,date)', amopmethod => 'brin' },
2869 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamptz',
2870 amoprighttype => 'timestamp', amopstrategy => '1',
2871 amopopr => '<(timestamptz,timestamp)', amopmethod => 'brin' },
2872 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamptz',
2873 amoprighttype => 'timestamp', amopstrategy => '2',
2874 amopopr => '<=(timestamptz,timestamp)', amopmethod => 'brin' },
2875 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamptz',
2876 amoprighttype => 'timestamp', amopstrategy => '3',
2877 amopopr => '=(timestamptz,timestamp)', amopmethod => 'brin' },
2878 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamptz',
2879 amoprighttype => 'timestamp', amopstrategy => '4',
2880 amopopr => '>=(timestamptz,timestamp)', amopmethod => 'brin' },
2881 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamptz',
2882 amoprighttype => 'timestamp', amopstrategy => '5',
2883 amopopr => '>(timestamptz,timestamp)', amopmethod => 'brin' },
2885 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamptz',
2886 amoprighttype => 'timestamptz', amopstrategy => '1',
2887 amopopr => '<(timestamptz,timestamptz)', amopmethod => 'brin' },
2888 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamptz',
2889 amoprighttype => 'timestamptz', amopstrategy => '2',
2890 amopopr => '<=(timestamptz,timestamptz)', amopmethod => 'brin' },
2891 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamptz',
2892 amoprighttype => 'timestamptz', amopstrategy => '3',
2893 amopopr => '=(timestamptz,timestamptz)', amopmethod => 'brin' },
2894 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamptz',
2895 amoprighttype => 'timestamptz', amopstrategy => '4',
2896 amopopr => '>=(timestamptz,timestamptz)', amopmethod => 'brin' },
2897 { amopfamily => 'brin/datetime_minmax_multi_ops', amoplefttype => 'timestamptz',
2898 amoprighttype => 'timestamptz', amopstrategy => '5',
2899 amopopr => '>(timestamptz,timestamptz)', amopmethod => 'brin' },
2901 # bloom datetime (date, timestamp, timestamptz)
2903 { amopfamily => 'brin/datetime_bloom_ops', amoplefttype => 'timestamp',
2904 amoprighttype => 'timestamp', amopstrategy => '1',
2905 amopopr => '=(timestamp,timestamp)', amopmethod => 'brin' },
2907 { amopfamily => 'brin/datetime_bloom_ops', amoplefttype => 'date',
2908 amoprighttype => 'date', amopstrategy => '1', amopopr => '=(date,date)',
2909 amopmethod => 'brin' },
2911 { amopfamily => 'brin/datetime_bloom_ops', amoplefttype => 'timestamptz',
2912 amoprighttype => 'timestamptz', amopstrategy => '1',
2913 amopopr => '=(timestamptz,timestamptz)', amopmethod => 'brin' },
2915 # minmax interval
2916 { amopfamily => 'brin/interval_minmax_ops', amoplefttype => 'interval',
2917 amoprighttype => 'interval', amopstrategy => '1',
2918 amopopr => '<(interval,interval)', amopmethod => 'brin' },
2919 { amopfamily => 'brin/interval_minmax_ops', amoplefttype => 'interval',
2920 amoprighttype => 'interval', amopstrategy => '2',
2921 amopopr => '<=(interval,interval)', amopmethod => 'brin' },
2922 { amopfamily => 'brin/interval_minmax_ops', amoplefttype => 'interval',
2923 amoprighttype => 'interval', amopstrategy => '3',
2924 amopopr => '=(interval,interval)', amopmethod => 'brin' },
2925 { amopfamily => 'brin/interval_minmax_ops', amoplefttype => 'interval',
2926 amoprighttype => 'interval', amopstrategy => '4',
2927 amopopr => '>=(interval,interval)', amopmethod => 'brin' },
2928 { amopfamily => 'brin/interval_minmax_ops', amoplefttype => 'interval',
2929 amoprighttype => 'interval', amopstrategy => '5',
2930 amopopr => '>(interval,interval)', amopmethod => 'brin' },
2932 # minmax multi interval
2933 { amopfamily => 'brin/interval_minmax_multi_ops', amoplefttype => 'interval',
2934 amoprighttype => 'interval', amopstrategy => '1',
2935 amopopr => '<(interval,interval)', amopmethod => 'brin' },
2936 { amopfamily => 'brin/interval_minmax_multi_ops', amoplefttype => 'interval',
2937 amoprighttype => 'interval', amopstrategy => '2',
2938 amopopr => '<=(interval,interval)', amopmethod => 'brin' },
2939 { amopfamily => 'brin/interval_minmax_multi_ops', amoplefttype => 'interval',
2940 amoprighttype => 'interval', amopstrategy => '3',
2941 amopopr => '=(interval,interval)', amopmethod => 'brin' },
2942 { amopfamily => 'brin/interval_minmax_multi_ops', amoplefttype => 'interval',
2943 amoprighttype => 'interval', amopstrategy => '4',
2944 amopopr => '>=(interval,interval)', amopmethod => 'brin' },
2945 { amopfamily => 'brin/interval_minmax_multi_ops', amoplefttype => 'interval',
2946 amoprighttype => 'interval', amopstrategy => '5',
2947 amopopr => '>(interval,interval)', amopmethod => 'brin' },
2949 # bloom interval
2950 { amopfamily => 'brin/interval_bloom_ops', amoplefttype => 'interval',
2951 amoprighttype => 'interval', amopstrategy => '1',
2952 amopopr => '=(interval,interval)', amopmethod => 'brin' },
2954 # minmax time with time zone
2955 { amopfamily => 'brin/timetz_minmax_ops', amoplefttype => 'timetz',
2956 amoprighttype => 'timetz', amopstrategy => '1', amopopr => '<(timetz,timetz)',
2957 amopmethod => 'brin' },
2958 { amopfamily => 'brin/timetz_minmax_ops', amoplefttype => 'timetz',
2959 amoprighttype => 'timetz', amopstrategy => '2',
2960 amopopr => '<=(timetz,timetz)', amopmethod => 'brin' },
2961 { amopfamily => 'brin/timetz_minmax_ops', amoplefttype => 'timetz',
2962 amoprighttype => 'timetz', amopstrategy => '3', amopopr => '=(timetz,timetz)',
2963 amopmethod => 'brin' },
2964 { amopfamily => 'brin/timetz_minmax_ops', amoplefttype => 'timetz',
2965 amoprighttype => 'timetz', amopstrategy => '4',
2966 amopopr => '>=(timetz,timetz)', amopmethod => 'brin' },
2967 { amopfamily => 'brin/timetz_minmax_ops', amoplefttype => 'timetz',
2968 amoprighttype => 'timetz', amopstrategy => '5', amopopr => '>(timetz,timetz)',
2969 amopmethod => 'brin' },
2971 # minmax multi time with time zone
2972 { amopfamily => 'brin/timetz_minmax_multi_ops', amoplefttype => 'timetz',
2973 amoprighttype => 'timetz', amopstrategy => '1', amopopr => '<(timetz,timetz)',
2974 amopmethod => 'brin' },
2975 { amopfamily => 'brin/timetz_minmax_multi_ops', amoplefttype => 'timetz',
2976 amoprighttype => 'timetz', amopstrategy => '2',
2977 amopopr => '<=(timetz,timetz)', amopmethod => 'brin' },
2978 { amopfamily => 'brin/timetz_minmax_multi_ops', amoplefttype => 'timetz',
2979 amoprighttype => 'timetz', amopstrategy => '3', amopopr => '=(timetz,timetz)',
2980 amopmethod => 'brin' },
2981 { amopfamily => 'brin/timetz_minmax_multi_ops', amoplefttype => 'timetz',
2982 amoprighttype => 'timetz', amopstrategy => '4',
2983 amopopr => '>=(timetz,timetz)', amopmethod => 'brin' },
2984 { amopfamily => 'brin/timetz_minmax_multi_ops', amoplefttype => 'timetz',
2985 amoprighttype => 'timetz', amopstrategy => '5', amopopr => '>(timetz,timetz)',
2986 amopmethod => 'brin' },
2988 # bloom time with time zone
2989 { amopfamily => 'brin/timetz_bloom_ops', amoplefttype => 'timetz',
2990 amoprighttype => 'timetz', amopstrategy => '1', amopopr => '=(timetz,timetz)',
2991 amopmethod => 'brin' },
2993 # minmax bit
2994 { amopfamily => 'brin/bit_minmax_ops', amoplefttype => 'bit',
2995 amoprighttype => 'bit', amopstrategy => '1', amopopr => '<(bit,bit)',
2996 amopmethod => 'brin' },
2997 { amopfamily => 'brin/bit_minmax_ops', amoplefttype => 'bit',
2998 amoprighttype => 'bit', amopstrategy => '2', amopopr => '<=(bit,bit)',
2999 amopmethod => 'brin' },
3000 { amopfamily => 'brin/bit_minmax_ops', amoplefttype => 'bit',
3001 amoprighttype => 'bit', amopstrategy => '3', amopopr => '=(bit,bit)',
3002 amopmethod => 'brin' },
3003 { amopfamily => 'brin/bit_minmax_ops', amoplefttype => 'bit',
3004 amoprighttype => 'bit', amopstrategy => '4', amopopr => '>=(bit,bit)',
3005 amopmethod => 'brin' },
3006 { amopfamily => 'brin/bit_minmax_ops', amoplefttype => 'bit',
3007 amoprighttype => 'bit', amopstrategy => '5', amopopr => '>(bit,bit)',
3008 amopmethod => 'brin' },
3010 # minmax bit varying
3011 { amopfamily => 'brin/varbit_minmax_ops', amoplefttype => 'varbit',
3012 amoprighttype => 'varbit', amopstrategy => '1', amopopr => '<(varbit,varbit)',
3013 amopmethod => 'brin' },
3014 { amopfamily => 'brin/varbit_minmax_ops', amoplefttype => 'varbit',
3015 amoprighttype => 'varbit', amopstrategy => '2',
3016 amopopr => '<=(varbit,varbit)', amopmethod => 'brin' },
3017 { amopfamily => 'brin/varbit_minmax_ops', amoplefttype => 'varbit',
3018 amoprighttype => 'varbit', amopstrategy => '3', amopopr => '=(varbit,varbit)',
3019 amopmethod => 'brin' },
3020 { amopfamily => 'brin/varbit_minmax_ops', amoplefttype => 'varbit',
3021 amoprighttype => 'varbit', amopstrategy => '4',
3022 amopopr => '>=(varbit,varbit)', amopmethod => 'brin' },
3023 { amopfamily => 'brin/varbit_minmax_ops', amoplefttype => 'varbit',
3024 amoprighttype => 'varbit', amopstrategy => '5', amopopr => '>(varbit,varbit)',
3025 amopmethod => 'brin' },
3027 # minmax numeric
3028 { amopfamily => 'brin/numeric_minmax_ops', amoplefttype => 'numeric',
3029 amoprighttype => 'numeric', amopstrategy => '1',
3030 amopopr => '<(numeric,numeric)', amopmethod => 'brin' },
3031 { amopfamily => 'brin/numeric_minmax_ops', amoplefttype => 'numeric',
3032 amoprighttype => 'numeric', amopstrategy => '2',
3033 amopopr => '<=(numeric,numeric)', amopmethod => 'brin' },
3034 { amopfamily => 'brin/numeric_minmax_ops', amoplefttype => 'numeric',
3035 amoprighttype => 'numeric', amopstrategy => '3',
3036 amopopr => '=(numeric,numeric)', amopmethod => 'brin' },
3037 { amopfamily => 'brin/numeric_minmax_ops', amoplefttype => 'numeric',
3038 amoprighttype => 'numeric', amopstrategy => '4',
3039 amopopr => '>=(numeric,numeric)', amopmethod => 'brin' },
3040 { amopfamily => 'brin/numeric_minmax_ops', amoplefttype => 'numeric',
3041 amoprighttype => 'numeric', amopstrategy => '5',
3042 amopopr => '>(numeric,numeric)', amopmethod => 'brin' },
3044 # minmax multi numeric
3045 { amopfamily => 'brin/numeric_minmax_multi_ops', amoplefttype => 'numeric',
3046 amoprighttype => 'numeric', amopstrategy => '1',
3047 amopopr => '<(numeric,numeric)', amopmethod => 'brin' },
3048 { amopfamily => 'brin/numeric_minmax_multi_ops', amoplefttype => 'numeric',
3049 amoprighttype => 'numeric', amopstrategy => '2',
3050 amopopr => '<=(numeric,numeric)', amopmethod => 'brin' },
3051 { amopfamily => 'brin/numeric_minmax_multi_ops', amoplefttype => 'numeric',
3052 amoprighttype => 'numeric', amopstrategy => '3',
3053 amopopr => '=(numeric,numeric)', amopmethod => 'brin' },
3054 { amopfamily => 'brin/numeric_minmax_multi_ops', amoplefttype => 'numeric',
3055 amoprighttype => 'numeric', amopstrategy => '4',
3056 amopopr => '>=(numeric,numeric)', amopmethod => 'brin' },
3057 { amopfamily => 'brin/numeric_minmax_multi_ops', amoplefttype => 'numeric',
3058 amoprighttype => 'numeric', amopstrategy => '5',
3059 amopopr => '>(numeric,numeric)', amopmethod => 'brin' },
3061 # bloom numeric
3062 { amopfamily => 'brin/numeric_bloom_ops', amoplefttype => 'numeric',
3063 amoprighttype => 'numeric', amopstrategy => '1',
3064 amopopr => '=(numeric,numeric)', amopmethod => 'brin' },
3066 # minmax uuid
3067 { amopfamily => 'brin/uuid_minmax_ops', amoplefttype => 'uuid',
3068 amoprighttype => 'uuid', amopstrategy => '1', amopopr => '<(uuid,uuid)',
3069 amopmethod => 'brin' },
3070 { amopfamily => 'brin/uuid_minmax_ops', amoplefttype => 'uuid',
3071 amoprighttype => 'uuid', amopstrategy => '2', amopopr => '<=(uuid,uuid)',
3072 amopmethod => 'brin' },
3073 { amopfamily => 'brin/uuid_minmax_ops', amoplefttype => 'uuid',
3074 amoprighttype => 'uuid', amopstrategy => '3', amopopr => '=(uuid,uuid)',
3075 amopmethod => 'brin' },
3076 { amopfamily => 'brin/uuid_minmax_ops', amoplefttype => 'uuid',
3077 amoprighttype => 'uuid', amopstrategy => '4', amopopr => '>=(uuid,uuid)',
3078 amopmethod => 'brin' },
3079 { amopfamily => 'brin/uuid_minmax_ops', amoplefttype => 'uuid',
3080 amoprighttype => 'uuid', amopstrategy => '5', amopopr => '>(uuid,uuid)',
3081 amopmethod => 'brin' },
3083 # minmax multi uuid
3084 { amopfamily => 'brin/uuid_minmax_multi_ops', amoplefttype => 'uuid',
3085 amoprighttype => 'uuid', amopstrategy => '1', amopopr => '<(uuid,uuid)',
3086 amopmethod => 'brin' },
3087 { amopfamily => 'brin/uuid_minmax_multi_ops', amoplefttype => 'uuid',
3088 amoprighttype => 'uuid', amopstrategy => '2', amopopr => '<=(uuid,uuid)',
3089 amopmethod => 'brin' },
3090 { amopfamily => 'brin/uuid_minmax_multi_ops', amoplefttype => 'uuid',
3091 amoprighttype => 'uuid', amopstrategy => '3', amopopr => '=(uuid,uuid)',
3092 amopmethod => 'brin' },
3093 { amopfamily => 'brin/uuid_minmax_multi_ops', amoplefttype => 'uuid',
3094 amoprighttype => 'uuid', amopstrategy => '4', amopopr => '>=(uuid,uuid)',
3095 amopmethod => 'brin' },
3096 { amopfamily => 'brin/uuid_minmax_multi_ops', amoplefttype => 'uuid',
3097 amoprighttype => 'uuid', amopstrategy => '5', amopopr => '>(uuid,uuid)',
3098 amopmethod => 'brin' },
3100 # bloom uuid
3101 { amopfamily => 'brin/uuid_bloom_ops', amoplefttype => 'uuid',
3102 amoprighttype => 'uuid', amopstrategy => '1', amopopr => '=(uuid,uuid)',
3103 amopmethod => 'brin' },
3105 # inclusion range types
3106 { amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange',
3107 amoprighttype => 'anyrange', amopstrategy => '1',
3108 amopopr => '<<(anyrange,anyrange)', amopmethod => 'brin' },
3109 { amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange',
3110 amoprighttype => 'anyrange', amopstrategy => '2',
3111 amopopr => '&<(anyrange,anyrange)', amopmethod => 'brin' },
3112 { amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange',
3113 amoprighttype => 'anyrange', amopstrategy => '3',
3114 amopopr => '&&(anyrange,anyrange)', amopmethod => 'brin' },
3115 { amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange',
3116 amoprighttype => 'anyrange', amopstrategy => '4',
3117 amopopr => '&>(anyrange,anyrange)', amopmethod => 'brin' },
3118 { amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange',
3119 amoprighttype => 'anyrange', amopstrategy => '5',
3120 amopopr => '>>(anyrange,anyrange)', amopmethod => 'brin' },
3121 { amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange',
3122 amoprighttype => 'anyrange', amopstrategy => '7',
3123 amopopr => '@>(anyrange,anyrange)', amopmethod => 'brin' },
3124 { amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange',
3125 amoprighttype => 'anyrange', amopstrategy => '8',
3126 amopopr => '<@(anyrange,anyrange)', amopmethod => 'brin' },
3127 { amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange',
3128 amoprighttype => 'anyelement', amopstrategy => '16',
3129 amopopr => '@>(anyrange,anyelement)', amopmethod => 'brin' },
3130 { amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange',
3131 amoprighttype => 'anyrange', amopstrategy => '17',
3132 amopopr => '-|-(anyrange,anyrange)', amopmethod => 'brin' },
3133 { amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange',
3134 amoprighttype => 'anyrange', amopstrategy => '18',
3135 amopopr => '=(anyrange,anyrange)', amopmethod => 'brin' },
3136 { amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange',
3137 amoprighttype => 'anyrange', amopstrategy => '20',
3138 amopopr => '<(anyrange,anyrange)', amopmethod => 'brin' },
3139 { amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange',
3140 amoprighttype => 'anyrange', amopstrategy => '21',
3141 amopopr => '<=(anyrange,anyrange)', amopmethod => 'brin' },
3142 { amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange',
3143 amoprighttype => 'anyrange', amopstrategy => '22',
3144 amopopr => '>(anyrange,anyrange)', amopmethod => 'brin' },
3145 { amopfamily => 'brin/range_inclusion_ops', amoplefttype => 'anyrange',
3146 amoprighttype => 'anyrange', amopstrategy => '23',
3147 amopopr => '>=(anyrange,anyrange)', amopmethod => 'brin' },
3149 # minmax pg_lsn
3150 { amopfamily => 'brin/pg_lsn_minmax_ops', amoplefttype => 'pg_lsn',
3151 amoprighttype => 'pg_lsn', amopstrategy => '1', amopopr => '<(pg_lsn,pg_lsn)',
3152 amopmethod => 'brin' },
3153 { amopfamily => 'brin/pg_lsn_minmax_ops', amoplefttype => 'pg_lsn',
3154 amoprighttype => 'pg_lsn', amopstrategy => '2',
3155 amopopr => '<=(pg_lsn,pg_lsn)', amopmethod => 'brin' },
3156 { amopfamily => 'brin/pg_lsn_minmax_ops', amoplefttype => 'pg_lsn',
3157 amoprighttype => 'pg_lsn', amopstrategy => '3', amopopr => '=(pg_lsn,pg_lsn)',
3158 amopmethod => 'brin' },
3159 { amopfamily => 'brin/pg_lsn_minmax_ops', amoplefttype => 'pg_lsn',
3160 amoprighttype => 'pg_lsn', amopstrategy => '4',
3161 amopopr => '>=(pg_lsn,pg_lsn)', amopmethod => 'brin' },
3162 { amopfamily => 'brin/pg_lsn_minmax_ops', amoplefttype => 'pg_lsn',
3163 amoprighttype => 'pg_lsn', amopstrategy => '5', amopopr => '>(pg_lsn,pg_lsn)',
3164 amopmethod => 'brin' },
3166 # minmax multi pg_lsn
3167 { amopfamily => 'brin/pg_lsn_minmax_multi_ops', amoplefttype => 'pg_lsn',
3168 amoprighttype => 'pg_lsn', amopstrategy => '1', amopopr => '<(pg_lsn,pg_lsn)',
3169 amopmethod => 'brin' },
3170 { amopfamily => 'brin/pg_lsn_minmax_multi_ops', amoplefttype => 'pg_lsn',
3171 amoprighttype => 'pg_lsn', amopstrategy => '2',
3172 amopopr => '<=(pg_lsn,pg_lsn)', amopmethod => 'brin' },
3173 { amopfamily => 'brin/pg_lsn_minmax_multi_ops', amoplefttype => 'pg_lsn',
3174 amoprighttype => 'pg_lsn', amopstrategy => '3', amopopr => '=(pg_lsn,pg_lsn)',
3175 amopmethod => 'brin' },
3176 { amopfamily => 'brin/pg_lsn_minmax_multi_ops', amoplefttype => 'pg_lsn',
3177 amoprighttype => 'pg_lsn', amopstrategy => '4',
3178 amopopr => '>=(pg_lsn,pg_lsn)', amopmethod => 'brin' },
3179 { amopfamily => 'brin/pg_lsn_minmax_multi_ops', amoplefttype => 'pg_lsn',
3180 amoprighttype => 'pg_lsn', amopstrategy => '5', amopopr => '>(pg_lsn,pg_lsn)',
3181 amopmethod => 'brin' },
3183 # bloom pg_lsn
3184 { amopfamily => 'brin/pg_lsn_bloom_ops', amoplefttype => 'pg_lsn',
3185 amoprighttype => 'pg_lsn', amopstrategy => '1', amopopr => '=(pg_lsn,pg_lsn)',
3186 amopmethod => 'brin' },
3188 # inclusion box
3189 { amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box',
3190 amoprighttype => 'box', amopstrategy => '1', amopopr => '<<(box,box)',
3191 amopmethod => 'brin' },
3192 { amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box',
3193 amoprighttype => 'box', amopstrategy => '2', amopopr => '&<(box,box)',
3194 amopmethod => 'brin' },
3195 { amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box',
3196 amoprighttype => 'box', amopstrategy => '3', amopopr => '&&(box,box)',
3197 amopmethod => 'brin' },
3198 { amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box',
3199 amoprighttype => 'box', amopstrategy => '4', amopopr => '&>(box,box)',
3200 amopmethod => 'brin' },
3201 { amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box',
3202 amoprighttype => 'box', amopstrategy => '5', amopopr => '>>(box,box)',
3203 amopmethod => 'brin' },
3204 { amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box',
3205 amoprighttype => 'box', amopstrategy => '6', amopopr => '~=(box,box)',
3206 amopmethod => 'brin' },
3207 { amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box',
3208 amoprighttype => 'box', amopstrategy => '7', amopopr => '@>(box,box)',
3209 amopmethod => 'brin' },
3210 { amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box',
3211 amoprighttype => 'box', amopstrategy => '8', amopopr => '<@(box,box)',
3212 amopmethod => 'brin' },
3213 { amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box',
3214 amoprighttype => 'box', amopstrategy => '9', amopopr => '&<|(box,box)',
3215 amopmethod => 'brin' },
3216 { amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box',
3217 amoprighttype => 'box', amopstrategy => '10', amopopr => '<<|(box,box)',
3218 amopmethod => 'brin' },
3219 { amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box',
3220 amoprighttype => 'box', amopstrategy => '11', amopopr => '|>>(box,box)',
3221 amopmethod => 'brin' },
3222 { amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box',
3223 amoprighttype => 'box', amopstrategy => '12', amopopr => '|&>(box,box)',
3224 amopmethod => 'brin' },
3226 { amopfamily => 'brin/box_inclusion_ops', amoplefttype => 'box',
3227 amoprighttype => 'point', amopstrategy => '7', amopopr => '@>(box,point)',
3228 amopmethod => 'brin' },