1#----------------------------------------------------------------------
2#
3# pg_amproc.dat
4#    Initial contents of the pg_amproc system catalog.
5#
6# Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
7# Portions Copyright (c) 1994, Regents of the University of California
8#
9# src/include/catalog/pg_amproc.dat
10#
11#----------------------------------------------------------------------
12
13[
14
15# btree
16{ amprocfamily => 'btree/array_ops', amproclefttype => 'anyarray',
17  amprocrighttype => 'anyarray', amprocnum => '1', amproc => 'btarraycmp' },
18{ amprocfamily => 'btree/bit_ops', amproclefttype => 'bit',
19  amprocrighttype => 'bit', amprocnum => '1', amproc => 'bitcmp' },
20{ amprocfamily => 'btree/bit_ops', amproclefttype => 'bit',
21  amprocrighttype => 'bit', amprocnum => '4', amproc => 'btequalimage' },
22{ amprocfamily => 'btree/bool_ops', amproclefttype => 'bool',
23  amprocrighttype => 'bool', amprocnum => '1', amproc => 'btboolcmp' },
24{ amprocfamily => 'btree/bool_ops', amproclefttype => 'bool',
25  amprocrighttype => 'bool', amprocnum => '4', amproc => 'btequalimage' },
26{ amprocfamily => 'btree/bpchar_ops', amproclefttype => 'bpchar',
27  amprocrighttype => 'bpchar', amprocnum => '1', amproc => 'bpcharcmp' },
28{ amprocfamily => 'btree/bpchar_ops', amproclefttype => 'bpchar',
29  amprocrighttype => 'bpchar', amprocnum => '2',
30  amproc => 'bpchar_sortsupport' },
31{ amprocfamily => 'btree/bpchar_ops', amproclefttype => 'bpchar',
32  amprocrighttype => 'bpchar', amprocnum => '4',
33  amproc => 'btvarstrequalimage' },
34{ amprocfamily => 'btree/bytea_ops', amproclefttype => 'bytea',
35  amprocrighttype => 'bytea', amprocnum => '1', amproc => 'byteacmp' },
36{ amprocfamily => 'btree/bytea_ops', amproclefttype => 'bytea',
37  amprocrighttype => 'bytea', amprocnum => '2', amproc => 'bytea_sortsupport' },
38{ amprocfamily => 'btree/bytea_ops', amproclefttype => 'bytea',
39  amprocrighttype => 'bytea', amprocnum => '4', amproc => 'btequalimage' },
40{ amprocfamily => 'btree/char_ops', amproclefttype => 'char',
41  amprocrighttype => 'char', amprocnum => '1', amproc => 'btcharcmp' },
42{ amprocfamily => 'btree/char_ops', amproclefttype => 'char',
43  amprocrighttype => 'char', amprocnum => '4', amproc => 'btequalimage' },
44{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'date',
45  amprocrighttype => 'date', amprocnum => '1', amproc => 'date_cmp' },
46{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'date',
47  amprocrighttype => 'date', amprocnum => '2', amproc => 'date_sortsupport' },
48{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'date',
49  amprocrighttype => 'date', amprocnum => '4', amproc => 'btequalimage' },
50{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'date',
51  amprocrighttype => 'timestamp', amprocnum => '1',
52  amproc => 'date_cmp_timestamp' },
53{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'date',
54  amprocrighttype => 'timestamptz', amprocnum => '1',
55  amproc => 'date_cmp_timestamptz' },
56{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'timestamp',
57  amprocrighttype => 'timestamp', amprocnum => '1', amproc => 'timestamp_cmp' },
58{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'timestamp',
59  amprocrighttype => 'timestamp', amprocnum => '2',
60  amproc => 'timestamp_sortsupport' },
61{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'timestamp',
62  amprocrighttype => 'timestamp', amprocnum => '4', amproc => 'btequalimage' },
63{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'timestamp',
64  amprocrighttype => 'date', amprocnum => '1', amproc => 'timestamp_cmp_date' },
65{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'timestamp',
66  amprocrighttype => 'timestamptz', amprocnum => '1',
67  amproc => 'timestamp_cmp_timestamptz' },
68{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'timestamptz',
69  amprocrighttype => 'timestamptz', amprocnum => '1',
70  amproc => 'timestamptz_cmp' },
71{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'timestamptz',
72  amprocrighttype => 'timestamptz', amprocnum => '2',
73  amproc => 'timestamp_sortsupport' },
74{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'timestamptz',
75  amprocrighttype => 'timestamptz', amprocnum => '4',
76  amproc => 'btequalimage' },
77{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'timestamptz',
78  amprocrighttype => 'date', amprocnum => '1',
79  amproc => 'timestamptz_cmp_date' },
80{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'timestamptz',
81  amprocrighttype => 'timestamp', amprocnum => '1',
82  amproc => 'timestamptz_cmp_timestamp' },
83{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'date',
84  amprocrighttype => 'interval', amprocnum => '3',
85  amproc => 'in_range(date,date,interval,bool,bool)' },
86{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'timestamp',
87  amprocrighttype => 'interval', amprocnum => '3',
88  amproc => 'in_range(timestamp,timestamp,interval,bool,bool)' },
89{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'timestamptz',
90  amprocrighttype => 'interval', amprocnum => '3',
91  amproc => 'in_range(timestamptz,timestamptz,interval,bool,bool)' },
92{ amprocfamily => 'btree/float_ops', amproclefttype => 'float4',
93  amprocrighttype => 'float4', amprocnum => '1', amproc => 'btfloat4cmp' },
94{ amprocfamily => 'btree/float_ops', amproclefttype => 'float4',
95  amprocrighttype => 'float4', amprocnum => '2',
96  amproc => 'btfloat4sortsupport' },
97{ amprocfamily => 'btree/float_ops', amproclefttype => 'float4',
98  amprocrighttype => 'float8', amprocnum => '1', amproc => 'btfloat48cmp' },
99{ amprocfamily => 'btree/float_ops', amproclefttype => 'float8',
100  amprocrighttype => 'float8', amprocnum => '1', amproc => 'btfloat8cmp' },
101{ amprocfamily => 'btree/float_ops', amproclefttype => 'float8',
102  amprocrighttype => 'float8', amprocnum => '2',
103  amproc => 'btfloat8sortsupport' },
104{ amprocfamily => 'btree/float_ops', amproclefttype => 'float8',
105  amprocrighttype => 'float4', amprocnum => '1', amproc => 'btfloat84cmp' },
106{ amprocfamily => 'btree/float_ops', amproclefttype => 'float8',
107  amprocrighttype => 'float8', amprocnum => '3',
108  amproc => 'in_range(float8,float8,float8,bool,bool)' },
109{ amprocfamily => 'btree/float_ops', amproclefttype => 'float4',
110  amprocrighttype => 'float8', amprocnum => '3',
111  amproc => 'in_range(float4,float4,float8,bool,bool)' },
112{ amprocfamily => 'btree/network_ops', amproclefttype => 'inet',
113  amprocrighttype => 'inet', amprocnum => '1', amproc => 'network_cmp' },
114{ amprocfamily => 'btree/network_ops', amproclefttype => 'inet',
115  amprocrighttype => 'inet', amprocnum => '2',
116  amproc => 'network_sortsupport' },
117{ amprocfamily => 'btree/network_ops', amproclefttype => 'inet',
118  amprocrighttype => 'inet', amprocnum => '4', amproc => 'btequalimage' },
119{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int2',
120  amprocrighttype => 'int2', amprocnum => '1', amproc => 'btint2cmp' },
121{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int2',
122  amprocrighttype => 'int2', amprocnum => '2', amproc => 'btint2sortsupport' },
123{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int2',
124  amprocrighttype => 'int2', amprocnum => '4', amproc => 'btequalimage' },
125{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int2',
126  amprocrighttype => 'int4', amprocnum => '1', amproc => 'btint24cmp' },
127{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int2',
128  amprocrighttype => 'int8', amprocnum => '1', amproc => 'btint28cmp' },
129{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int2',
130  amprocrighttype => 'int8', amprocnum => '3',
131  amproc => 'in_range(int2,int2,int8,bool,bool)' },
132{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int2',
133  amprocrighttype => 'int4', amprocnum => '3',
134  amproc => 'in_range(int2,int2,int4,bool,bool)' },
135{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int2',
136  amprocrighttype => 'int2', amprocnum => '3',
137  amproc => 'in_range(int2,int2,int2,bool,bool)' },
138{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int4',
139  amprocrighttype => 'int4', amprocnum => '1', amproc => 'btint4cmp' },
140{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int4',
141  amprocrighttype => 'int4', amprocnum => '2', amproc => 'btint4sortsupport' },
142{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int4',
143  amprocrighttype => 'int4', amprocnum => '4', amproc => 'btequalimage' },
144{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int4',
145  amprocrighttype => 'int8', amprocnum => '1', amproc => 'btint48cmp' },
146{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int4',
147  amprocrighttype => 'int2', amprocnum => '1', amproc => 'btint42cmp' },
148{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int4',
149  amprocrighttype => 'int8', amprocnum => '3',
150  amproc => 'in_range(int4,int4,int8,bool,bool)' },
151{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int4',
152  amprocrighttype => 'int4', amprocnum => '3',
153  amproc => 'in_range(int4,int4,int4,bool,bool)' },
154{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int4',
155  amprocrighttype => 'int2', amprocnum => '3',
156  amproc => 'in_range(int4,int4,int2,bool,bool)' },
157{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int8',
158  amprocrighttype => 'int8', amprocnum => '1', amproc => 'btint8cmp' },
159{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int8',
160  amprocrighttype => 'int8', amprocnum => '2', amproc => 'btint8sortsupport' },
161{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int8',
162  amprocrighttype => 'int8', amprocnum => '4', amproc => 'btequalimage' },
163{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int8',
164  amprocrighttype => 'int4', amprocnum => '1', amproc => 'btint84cmp' },
165{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int8',
166  amprocrighttype => 'int2', amprocnum => '1', amproc => 'btint82cmp' },
167{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int8',
168  amprocrighttype => 'int8', amprocnum => '3',
169  amproc => 'in_range(int8,int8,int8,bool,bool)' },
170{ amprocfamily => 'btree/interval_ops', amproclefttype => 'interval',
171  amprocrighttype => 'interval', amprocnum => '1', amproc => 'interval_cmp' },
172{ amprocfamily => 'btree/interval_ops', amproclefttype => 'interval',
173  amprocrighttype => 'interval', amprocnum => '3',
174  amproc => 'in_range(interval,interval,interval,bool,bool)' },
175{ amprocfamily => 'btree/interval_ops', amproclefttype => 'interval',
176  amprocrighttype => 'interval', amprocnum => '4', amproc => 'btequalimage' },
177{ amprocfamily => 'btree/macaddr_ops', amproclefttype => 'macaddr',
178  amprocrighttype => 'macaddr', amprocnum => '1', amproc => 'macaddr_cmp' },
179{ amprocfamily => 'btree/macaddr_ops', amproclefttype => 'macaddr',
180  amprocrighttype => 'macaddr', amprocnum => '2',
181  amproc => 'macaddr_sortsupport' },
182{ amprocfamily => 'btree/macaddr_ops', amproclefttype => 'macaddr',
183  amprocrighttype => 'macaddr', amprocnum => '4', amproc => 'btequalimage' },
184{ amprocfamily => 'btree/numeric_ops', amproclefttype => 'numeric',
185  amprocrighttype => 'numeric', amprocnum => '1', amproc => 'numeric_cmp' },
186{ amprocfamily => 'btree/numeric_ops', amproclefttype => 'numeric',
187  amprocrighttype => 'numeric', amprocnum => '2',
188  amproc => 'numeric_sortsupport' },
189{ amprocfamily => 'btree/numeric_ops', amproclefttype => 'numeric',
190  amprocrighttype => 'numeric', amprocnum => '3',
191  amproc => 'in_range(numeric,numeric,numeric,bool,bool)' },
192{ amprocfamily => 'btree/oid_ops', amproclefttype => 'oid',
193  amprocrighttype => 'oid', amprocnum => '1', amproc => 'btoidcmp' },
194{ amprocfamily => 'btree/oid_ops', amproclefttype => 'oid',
195  amprocrighttype => 'oid', amprocnum => '2', amproc => 'btoidsortsupport' },
196{ amprocfamily => 'btree/oid_ops', amproclefttype => 'oid',
197  amprocrighttype => 'oid', amprocnum => '4', amproc => 'btequalimage' },
198{ amprocfamily => 'btree/oidvector_ops', amproclefttype => 'oidvector',
199  amprocrighttype => 'oidvector', amprocnum => '1',
200  amproc => 'btoidvectorcmp' },
201{ amprocfamily => 'btree/oidvector_ops', amproclefttype => 'oidvector',
202  amprocrighttype => 'oidvector', amprocnum => '4', amproc => 'btequalimage' },
203{ amprocfamily => 'btree/text_ops', amproclefttype => 'text',
204  amprocrighttype => 'text', amprocnum => '1', amproc => 'bttextcmp' },
205{ amprocfamily => 'btree/text_ops', amproclefttype => 'text',
206  amprocrighttype => 'text', amprocnum => '2', amproc => 'bttextsortsupport' },
207{ amprocfamily => 'btree/text_ops', amproclefttype => 'text',
208  amprocrighttype => 'text', amprocnum => '4', amproc => 'btvarstrequalimage' },
209{ amprocfamily => 'btree/text_ops', amproclefttype => 'name',
210  amprocrighttype => 'name', amprocnum => '1', amproc => 'btnamecmp' },
211{ amprocfamily => 'btree/text_ops', amproclefttype => 'name',
212  amprocrighttype => 'name', amprocnum => '2', amproc => 'btnamesortsupport' },
213{ amprocfamily => 'btree/text_ops', amproclefttype => 'name',
214  amprocrighttype => 'name', amprocnum => '4', amproc => 'btvarstrequalimage' },
215{ amprocfamily => 'btree/text_ops', amproclefttype => 'name',
216  amprocrighttype => 'text', amprocnum => '1', amproc => 'btnametextcmp' },
217{ amprocfamily => 'btree/text_ops', amproclefttype => 'text',
218  amprocrighttype => 'name', amprocnum => '1', amproc => 'bttextnamecmp' },
219{ amprocfamily => 'btree/time_ops', amproclefttype => 'time',
220  amprocrighttype => 'time', amprocnum => '1', amproc => 'time_cmp' },
221{ amprocfamily => 'btree/time_ops', amproclefttype => 'time',
222  amprocrighttype => 'time', amprocnum => '4', amproc => 'btequalimage' },
223{ amprocfamily => 'btree/time_ops', amproclefttype => 'time',
224  amprocrighttype => 'interval', amprocnum => '3',
225  amproc => 'in_range(time,time,interval,bool,bool)' },
226{ amprocfamily => 'btree/timetz_ops', amproclefttype => 'timetz',
227  amprocrighttype => 'timetz', amprocnum => '1', amproc => 'timetz_cmp' },
228{ amprocfamily => 'btree/timetz_ops', amproclefttype => 'timetz',
229  amprocrighttype => 'timetz', amprocnum => '4', amproc => 'btequalimage' },
230{ amprocfamily => 'btree/timetz_ops', amproclefttype => 'timetz',
231  amprocrighttype => 'interval', amprocnum => '3',
232  amproc => 'in_range(timetz,timetz,interval,bool,bool)' },
233{ amprocfamily => 'btree/varbit_ops', amproclefttype => 'varbit',
234  amprocrighttype => 'varbit', amprocnum => '1', amproc => 'varbitcmp' },
235{ amprocfamily => 'btree/varbit_ops', amproclefttype => 'varbit',
236  amprocrighttype => 'varbit', amprocnum => '4', amproc => 'btequalimage' },
237{ amprocfamily => 'btree/text_pattern_ops', amproclefttype => 'text',
238  amprocrighttype => 'text', amprocnum => '1', amproc => 'bttext_pattern_cmp' },
239{ amprocfamily => 'btree/text_pattern_ops', amproclefttype => 'text',
240  amprocrighttype => 'text', amprocnum => '2',
241  amproc => 'bttext_pattern_sortsupport' },
242{ amprocfamily => 'btree/text_pattern_ops', amproclefttype => 'text',
243  amprocrighttype => 'text', amprocnum => '4', amproc => 'btequalimage' },
244{ amprocfamily => 'btree/bpchar_pattern_ops', amproclefttype => 'bpchar',
245  amprocrighttype => 'bpchar', amprocnum => '1',
246  amproc => 'btbpchar_pattern_cmp' },
247{ amprocfamily => 'btree/bpchar_pattern_ops', amproclefttype => 'bpchar',
248  amprocrighttype => 'bpchar', amprocnum => '2',
249  amproc => 'btbpchar_pattern_sortsupport' },
250{ amprocfamily => 'btree/bpchar_pattern_ops', amproclefttype => 'bpchar',
251  amprocrighttype => 'bpchar', amprocnum => '4', amproc => 'btequalimage' },
252{ amprocfamily => 'btree/money_ops', amproclefttype => 'money',
253  amprocrighttype => 'money', amprocnum => '1', amproc => 'cash_cmp' },
254{ amprocfamily => 'btree/money_ops', amproclefttype => 'money',
255  amprocrighttype => 'money', amprocnum => '4', amproc => 'btequalimage' },
256{ amprocfamily => 'btree/tid_ops', amproclefttype => 'tid',
257  amprocrighttype => 'tid', amprocnum => '1', amproc => 'bttidcmp' },
258{ amprocfamily => 'btree/tid_ops', amproclefttype => 'tid',
259  amprocrighttype => 'tid', amprocnum => '4', amproc => 'btequalimage' },
260{ amprocfamily => 'btree/uuid_ops', amproclefttype => 'uuid',
261  amprocrighttype => 'uuid', amprocnum => '1', amproc => 'uuid_cmp' },
262{ amprocfamily => 'btree/uuid_ops', amproclefttype => 'uuid',
263  amprocrighttype => 'uuid', amprocnum => '2', amproc => 'uuid_sortsupport' },
264{ amprocfamily => 'btree/uuid_ops', amproclefttype => 'uuid',
265  amprocrighttype => 'uuid', amprocnum => '4', amproc => 'btequalimage' },
266{ amprocfamily => 'btree/record_ops', amproclefttype => 'record',
267  amprocrighttype => 'record', amprocnum => '1', amproc => 'btrecordcmp' },
268{ amprocfamily => 'btree/record_image_ops', amproclefttype => 'record',
269  amprocrighttype => 'record', amprocnum => '1', amproc => 'btrecordimagecmp' },
270{ amprocfamily => 'btree/pg_lsn_ops', amproclefttype => 'pg_lsn',
271  amprocrighttype => 'pg_lsn', amprocnum => '1', amproc => 'pg_lsn_cmp' },
272{ amprocfamily => 'btree/pg_lsn_ops', amproclefttype => 'pg_lsn',
273  amprocrighttype => 'pg_lsn', amprocnum => '4', amproc => 'btequalimage' },
274{ amprocfamily => 'btree/macaddr8_ops', amproclefttype => 'macaddr8',
275  amprocrighttype => 'macaddr8', amprocnum => '1', amproc => 'macaddr8_cmp' },
276{ amprocfamily => 'btree/macaddr8_ops', amproclefttype => 'macaddr8',
277  amprocrighttype => 'macaddr8', amprocnum => '4', amproc => 'btequalimage' },
278{ amprocfamily => 'btree/enum_ops', amproclefttype => 'anyenum',
279  amprocrighttype => 'anyenum', amprocnum => '1', amproc => 'enum_cmp' },
280{ amprocfamily => 'btree/enum_ops', amproclefttype => 'anyenum',
281  amprocrighttype => 'anyenum', amprocnum => '4', amproc => 'btequalimage' },
282{ amprocfamily => 'btree/tsvector_ops', amproclefttype => 'tsvector',
283  amprocrighttype => 'tsvector', amprocnum => '1', amproc => 'tsvector_cmp' },
284{ amprocfamily => 'btree/tsquery_ops', amproclefttype => 'tsquery',
285  amprocrighttype => 'tsquery', amprocnum => '1', amproc => 'tsquery_cmp' },
286{ amprocfamily => 'btree/range_ops', amproclefttype => 'anyrange',
287  amprocrighttype => 'anyrange', amprocnum => '1', amproc => 'range_cmp' },
288{ amprocfamily => 'btree/jsonb_ops', amproclefttype => 'jsonb',
289  amprocrighttype => 'jsonb', amprocnum => '1', amproc => 'jsonb_cmp' },
290{ amprocfamily => 'btree/xid8_ops', amproclefttype => 'xid8',
291  amprocrighttype => 'xid8', amprocnum => '1', amproc => 'xid8cmp' },
292{ amprocfamily => 'btree/xid8_ops', amproclefttype => 'xid8',
293  amprocrighttype => 'xid8', amprocnum => '4', amproc => 'btequalimage' },
294
295# hash
296{ amprocfamily => 'hash/bpchar_ops', amproclefttype => 'bpchar',
297  amprocrighttype => 'bpchar', amprocnum => '1', amproc => 'hashbpchar' },
298{ amprocfamily => 'hash/bpchar_ops', amproclefttype => 'bpchar',
299  amprocrighttype => 'bpchar', amprocnum => '2',
300  amproc => 'hashbpcharextended' },
301{ amprocfamily => 'hash/char_ops', amproclefttype => 'char',
302  amprocrighttype => 'char', amprocnum => '1', amproc => 'hashchar' },
303{ amprocfamily => 'hash/char_ops', amproclefttype => 'char',
304  amprocrighttype => 'char', amprocnum => '2', amproc => 'hashcharextended' },
305{ amprocfamily => 'hash/date_ops', amproclefttype => 'date',
306  amprocrighttype => 'date', amprocnum => '1', amproc => 'hashint4' },
307{ amprocfamily => 'hash/date_ops', amproclefttype => 'date',
308  amprocrighttype => 'date', amprocnum => '2', amproc => 'hashint4extended' },
309{ amprocfamily => 'hash/array_ops', amproclefttype => 'anyarray',
310  amprocrighttype => 'anyarray', amprocnum => '1', amproc => 'hash_array' },
311{ amprocfamily => 'hash/array_ops', amproclefttype => 'anyarray',
312  amprocrighttype => 'anyarray', amprocnum => '2',
313  amproc => 'hash_array_extended' },
314{ amprocfamily => 'hash/float_ops', amproclefttype => 'float4',
315  amprocrighttype => 'float4', amprocnum => '1', amproc => 'hashfloat4' },
316{ amprocfamily => 'hash/float_ops', amproclefttype => 'float4',
317  amprocrighttype => 'float4', amprocnum => '2',
318  amproc => 'hashfloat4extended' },
319{ amprocfamily => 'hash/float_ops', amproclefttype => 'float8',
320  amprocrighttype => 'float8', amprocnum => '1', amproc => 'hashfloat8' },
321{ amprocfamily => 'hash/float_ops', amproclefttype => 'float8',
322  amprocrighttype => 'float8', amprocnum => '2',
323  amproc => 'hashfloat8extended' },
324{ amprocfamily => 'hash/network_ops', amproclefttype => 'inet',
325  amprocrighttype => 'inet', amprocnum => '1', amproc => 'hashinet' },
326{ amprocfamily => 'hash/network_ops', amproclefttype => 'inet',
327  amprocrighttype => 'inet', amprocnum => '2', amproc => 'hashinetextended' },
328{ amprocfamily => 'hash/integer_ops', amproclefttype => 'int2',
329  amprocrighttype => 'int2', amprocnum => '1', amproc => 'hashint2' },
330{ amprocfamily => 'hash/integer_ops', amproclefttype => 'int2',
331  amprocrighttype => 'int2', amprocnum => '2', amproc => 'hashint2extended' },
332{ amprocfamily => 'hash/integer_ops', amproclefttype => 'int4',
333  amprocrighttype => 'int4', amprocnum => '1', amproc => 'hashint4' },
334{ amprocfamily => 'hash/integer_ops', amproclefttype => 'int4',
335  amprocrighttype => 'int4', amprocnum => '2', amproc => 'hashint4extended' },
336{ amprocfamily => 'hash/integer_ops', amproclefttype => 'int8',
337  amprocrighttype => 'int8', amprocnum => '1', amproc => 'hashint8' },
338{ amprocfamily => 'hash/integer_ops', amproclefttype => 'int8',
339  amprocrighttype => 'int8', amprocnum => '2', amproc => 'hashint8extended' },
340{ amprocfamily => 'hash/interval_ops', amproclefttype => 'interval',
341  amprocrighttype => 'interval', amprocnum => '1', amproc => 'interval_hash' },
342{ amprocfamily => 'hash/interval_ops', amproclefttype => 'interval',
343  amprocrighttype => 'interval', amprocnum => '2',
344  amproc => 'interval_hash_extended' },
345{ amprocfamily => 'hash/macaddr_ops', amproclefttype => 'macaddr',
346  amprocrighttype => 'macaddr', amprocnum => '1', amproc => 'hashmacaddr' },
347{ amprocfamily => 'hash/macaddr_ops', amproclefttype => 'macaddr',
348  amprocrighttype => 'macaddr', amprocnum => '2',
349  amproc => 'hashmacaddrextended' },
350{ amprocfamily => 'hash/oid_ops', amproclefttype => 'oid',
351  amprocrighttype => 'oid', amprocnum => '1', amproc => 'hashoid' },
352{ amprocfamily => 'hash/oid_ops', amproclefttype => 'oid',
353  amprocrighttype => 'oid', amprocnum => '2', amproc => 'hashoidextended' },
354{ amprocfamily => 'hash/oidvector_ops', amproclefttype => 'oidvector',
355  amprocrighttype => 'oidvector', amprocnum => '1', amproc => 'hashoidvector' },
356{ amprocfamily => 'hash/oidvector_ops', amproclefttype => 'oidvector',
357  amprocrighttype => 'oidvector', amprocnum => '2',
358  amproc => 'hashoidvectorextended' },
359{ amprocfamily => 'hash/text_ops', amproclefttype => 'text',
360  amprocrighttype => 'text', amprocnum => '1', amproc => 'hashtext' },
361{ amprocfamily => 'hash/text_ops', amproclefttype => 'text',
362  amprocrighttype => 'text', amprocnum => '2', amproc => 'hashtextextended' },
363{ amprocfamily => 'hash/text_ops', amproclefttype => 'name',
364  amprocrighttype => 'name', amprocnum => '1', amproc => 'hashname' },
365{ amprocfamily => 'hash/text_ops', amproclefttype => 'name',
366  amprocrighttype => 'name', amprocnum => '2', amproc => 'hashnameextended' },
367{ amprocfamily => 'hash/time_ops', amproclefttype => 'time',
368  amprocrighttype => 'time', amprocnum => '1', amproc => 'time_hash' },
369{ amprocfamily => 'hash/time_ops', amproclefttype => 'time',
370  amprocrighttype => 'time', amprocnum => '2', amproc => 'time_hash_extended' },
371{ amprocfamily => 'hash/numeric_ops', amproclefttype => 'numeric',
372  amprocrighttype => 'numeric', amprocnum => '1', amproc => 'hash_numeric' },
373{ amprocfamily => 'hash/numeric_ops', amproclefttype => 'numeric',
374  amprocrighttype => 'numeric', amprocnum => '2',
375  amproc => 'hash_numeric_extended' },
376{ amprocfamily => 'hash/timestamptz_ops', amproclefttype => 'timestamptz',
377  amprocrighttype => 'timestamptz', amprocnum => '1',
378  amproc => 'timestamp_hash' },
379{ amprocfamily => 'hash/timestamptz_ops', amproclefttype => 'timestamptz',
380  amprocrighttype => 'timestamptz', amprocnum => '2',
381  amproc => 'timestamp_hash_extended' },
382{ amprocfamily => 'hash/timetz_ops', amproclefttype => 'timetz',
383  amprocrighttype => 'timetz', amprocnum => '1', amproc => 'timetz_hash' },
384{ amprocfamily => 'hash/timetz_ops', amproclefttype => 'timetz',
385  amprocrighttype => 'timetz', amprocnum => '2',
386  amproc => 'timetz_hash_extended' },
387{ amprocfamily => 'hash/timestamp_ops', amproclefttype => 'timestamp',
388  amprocrighttype => 'timestamp', amprocnum => '1',
389  amproc => 'timestamp_hash' },
390{ amprocfamily => 'hash/timestamp_ops', amproclefttype => 'timestamp',
391  amprocrighttype => 'timestamp', amprocnum => '2',
392  amproc => 'timestamp_hash_extended' },
393{ amprocfamily => 'hash/bool_ops', amproclefttype => 'bool',
394  amprocrighttype => 'bool', amprocnum => '1', amproc => 'hashchar' },
395{ amprocfamily => 'hash/bool_ops', amproclefttype => 'bool',
396  amprocrighttype => 'bool', amprocnum => '2', amproc => 'hashcharextended' },
397{ amprocfamily => 'hash/bytea_ops', amproclefttype => 'bytea',
398  amprocrighttype => 'bytea', amprocnum => '1', amproc => 'hashvarlena' },
399{ amprocfamily => 'hash/bytea_ops', amproclefttype => 'bytea',
400  amprocrighttype => 'bytea', amprocnum => '2',
401  amproc => 'hashvarlenaextended' },
402{ amprocfamily => 'hash/xid_ops', amproclefttype => 'xid',
403  amprocrighttype => 'xid', amprocnum => '1', amproc => 'hashint4' },
404{ amprocfamily => 'hash/xid_ops', amproclefttype => 'xid',
405  amprocrighttype => 'xid', amprocnum => '2', amproc => 'hashint4extended' },
406{ amprocfamily => 'hash/xid8_ops', amproclefttype => 'xid8',
407  amprocrighttype => 'xid8', amprocnum => '1', amproc => 'hashint8' },
408{ amprocfamily => 'hash/xid8_ops', amproclefttype => 'xid8',
409  amprocrighttype => 'xid8', amprocnum => '2', amproc => 'hashint8extended' },
410{ amprocfamily => 'hash/cid_ops', amproclefttype => 'cid',
411  amprocrighttype => 'cid', amprocnum => '1', amproc => 'hashint4' },
412{ amprocfamily => 'hash/cid_ops', amproclefttype => 'cid',
413  amprocrighttype => 'cid', amprocnum => '2', amproc => 'hashint4extended' },
414{ amprocfamily => 'hash/tid_ops', amproclefttype => 'tid',
415  amprocrighttype => 'tid', amprocnum => '1', amproc => 'hashtid' },
416{ amprocfamily => 'hash/tid_ops', amproclefttype => 'tid',
417  amprocrighttype => 'tid', amprocnum => '2', amproc => 'hashtidextended' },
418{ amprocfamily => 'hash/text_pattern_ops', amproclefttype => 'text',
419  amprocrighttype => 'text', amprocnum => '1', amproc => 'hashtext' },
420{ amprocfamily => 'hash/text_pattern_ops', amproclefttype => 'text',
421  amprocrighttype => 'text', amprocnum => '2', amproc => 'hashtextextended' },
422{ amprocfamily => 'hash/bpchar_pattern_ops', amproclefttype => 'bpchar',
423  amprocrighttype => 'bpchar', amprocnum => '1', amproc => 'hashbpchar' },
424{ amprocfamily => 'hash/bpchar_pattern_ops', amproclefttype => 'bpchar',
425  amprocrighttype => 'bpchar', amprocnum => '2',
426  amproc => 'hashbpcharextended' },
427{ amprocfamily => 'hash/aclitem_ops', amproclefttype => 'aclitem',
428  amprocrighttype => 'aclitem', amprocnum => '1', amproc => 'hash_aclitem' },
429{ amprocfamily => 'hash/aclitem_ops', amproclefttype => 'aclitem',
430  amprocrighttype => 'aclitem', amprocnum => '2',
431  amproc => 'hash_aclitem_extended' },
432{ amprocfamily => 'hash/uuid_ops', amproclefttype => 'uuid',
433  amprocrighttype => 'uuid', amprocnum => '1', amproc => 'uuid_hash' },
434{ amprocfamily => 'hash/uuid_ops', amproclefttype => 'uuid',
435  amprocrighttype => 'uuid', amprocnum => '2', amproc => 'uuid_hash_extended' },
436{ amprocfamily => 'hash/pg_lsn_ops', amproclefttype => 'pg_lsn',
437  amprocrighttype => 'pg_lsn', amprocnum => '1', amproc => 'pg_lsn_hash' },
438{ amprocfamily => 'hash/pg_lsn_ops', amproclefttype => 'pg_lsn',
439  amprocrighttype => 'pg_lsn', amprocnum => '2',
440  amproc => 'pg_lsn_hash_extended' },
441{ amprocfamily => 'hash/macaddr8_ops', amproclefttype => 'macaddr8',
442  amprocrighttype => 'macaddr8', amprocnum => '1', amproc => 'hashmacaddr8' },
443{ amprocfamily => 'hash/macaddr8_ops', amproclefttype => 'macaddr8',
444  amprocrighttype => 'macaddr8', amprocnum => '2',
445  amproc => 'hashmacaddr8extended' },
446{ amprocfamily => 'hash/enum_ops', amproclefttype => 'anyenum',
447  amprocrighttype => 'anyenum', amprocnum => '1', amproc => 'hashenum' },
448{ amprocfamily => 'hash/enum_ops', amproclefttype => 'anyenum',
449  amprocrighttype => 'anyenum', amprocnum => '2',
450  amproc => 'hashenumextended' },
451{ amprocfamily => 'hash/range_ops', amproclefttype => 'anyrange',
452  amprocrighttype => 'anyrange', amprocnum => '1', amproc => 'hash_range' },
453{ amprocfamily => 'hash/range_ops', amproclefttype => 'anyrange',
454  amprocrighttype => 'anyrange', amprocnum => '2',
455  amproc => 'hash_range_extended' },
456{ amprocfamily => 'hash/jsonb_ops', amproclefttype => 'jsonb',
457  amprocrighttype => 'jsonb', amprocnum => '1', amproc => 'jsonb_hash' },
458{ amprocfamily => 'hash/jsonb_ops', amproclefttype => 'jsonb',
459  amprocrighttype => 'jsonb', amprocnum => '2',
460  amproc => 'jsonb_hash_extended' },
461
462# gist
463{ amprocfamily => 'gist/point_ops', amproclefttype => 'point',
464  amprocrighttype => 'point', amprocnum => '1',
465  amproc => 'gist_point_consistent' },
466{ amprocfamily => 'gist/point_ops', amproclefttype => 'point',
467  amprocrighttype => 'point', amprocnum => '2', amproc => 'gist_box_union' },
468{ amprocfamily => 'gist/point_ops', amproclefttype => 'point',
469  amprocrighttype => 'point', amprocnum => '3',
470  amproc => 'gist_point_compress' },
471{ amprocfamily => 'gist/point_ops', amproclefttype => 'point',
472  amprocrighttype => 'point', amprocnum => '5', amproc => 'gist_box_penalty' },
473{ amprocfamily => 'gist/point_ops', amproclefttype => 'point',
474  amprocrighttype => 'point', amprocnum => '6',
475  amproc => 'gist_box_picksplit' },
476{ amprocfamily => 'gist/point_ops', amproclefttype => 'point',
477  amprocrighttype => 'point', amprocnum => '7', amproc => 'gist_box_same' },
478{ amprocfamily => 'gist/point_ops', amproclefttype => 'point',
479  amprocrighttype => 'point', amprocnum => '8',
480  amproc => 'gist_point_distance' },
481{ amprocfamily => 'gist/point_ops', amproclefttype => 'point',
482  amprocrighttype => 'point', amprocnum => '9', amproc => 'gist_point_fetch' },
483{ amprocfamily => 'gist/box_ops', amproclefttype => 'box',
484  amprocrighttype => 'box', amprocnum => '1', amproc => 'gist_box_consistent' },
485{ amprocfamily => 'gist/box_ops', amproclefttype => 'box',
486  amprocrighttype => 'box', amprocnum => '2', amproc => 'gist_box_union' },
487{ amprocfamily => 'gist/box_ops', amproclefttype => 'box',
488  amprocrighttype => 'box', amprocnum => '5', amproc => 'gist_box_penalty' },
489{ amprocfamily => 'gist/box_ops', amproclefttype => 'box',
490  amprocrighttype => 'box', amprocnum => '6', amproc => 'gist_box_picksplit' },
491{ amprocfamily => 'gist/box_ops', amproclefttype => 'box',
492  amprocrighttype => 'box', amprocnum => '7', amproc => 'gist_box_same' },
493{ amprocfamily => 'gist/box_ops', amproclefttype => 'box',
494  amprocrighttype => 'box', amprocnum => '8', amproc => 'gist_box_distance' },
495{ amprocfamily => 'gist/poly_ops', amproclefttype => 'polygon',
496  amprocrighttype => 'polygon', amprocnum => '1',
497  amproc => 'gist_poly_consistent' },
498{ amprocfamily => 'gist/poly_ops', amproclefttype => 'polygon',
499  amprocrighttype => 'polygon', amprocnum => '2', amproc => 'gist_box_union' },
500{ amprocfamily => 'gist/poly_ops', amproclefttype => 'polygon',
501  amprocrighttype => 'polygon', amprocnum => '3',
502  amproc => 'gist_poly_compress' },
503{ amprocfamily => 'gist/poly_ops', amproclefttype => 'polygon',
504  amprocrighttype => 'polygon', amprocnum => '5',
505  amproc => 'gist_box_penalty' },
506{ amprocfamily => 'gist/poly_ops', amproclefttype => 'polygon',
507  amprocrighttype => 'polygon', amprocnum => '6',
508  amproc => 'gist_box_picksplit' },
509{ amprocfamily => 'gist/poly_ops', amproclefttype => 'polygon',
510  amprocrighttype => 'polygon', amprocnum => '7', amproc => 'gist_box_same' },
511{ amprocfamily => 'gist/poly_ops', amproclefttype => 'polygon',
512  amprocrighttype => 'polygon', amprocnum => '8',
513  amproc => 'gist_poly_distance' },
514{ amprocfamily => 'gist/circle_ops', amproclefttype => 'circle',
515  amprocrighttype => 'circle', amprocnum => '1',
516  amproc => 'gist_circle_consistent' },
517{ amprocfamily => 'gist/circle_ops', amproclefttype => 'circle',
518  amprocrighttype => 'circle', amprocnum => '2', amproc => 'gist_box_union' },
519{ amprocfamily => 'gist/circle_ops', amproclefttype => 'circle',
520  amprocrighttype => 'circle', amprocnum => '3',
521  amproc => 'gist_circle_compress' },
522{ amprocfamily => 'gist/circle_ops', amproclefttype => 'circle',
523  amprocrighttype => 'circle', amprocnum => '5', amproc => 'gist_box_penalty' },
524{ amprocfamily => 'gist/circle_ops', amproclefttype => 'circle',
525  amprocrighttype => 'circle', amprocnum => '6',
526  amproc => 'gist_box_picksplit' },
527{ amprocfamily => 'gist/circle_ops', amproclefttype => 'circle',
528  amprocrighttype => 'circle', amprocnum => '7', amproc => 'gist_box_same' },
529{ amprocfamily => 'gist/circle_ops', amproclefttype => 'circle',
530  amprocrighttype => 'circle', amprocnum => '8',
531  amproc => 'gist_circle_distance' },
532{ amprocfamily => 'gist/tsvector_ops', amproclefttype => 'tsvector',
533  amprocrighttype => 'tsvector', amprocnum => '1',
534  amproc => 'gtsvector_consistent(internal,tsvector,int2,oid,internal)' },
535{ amprocfamily => 'gist/tsvector_ops', amproclefttype => 'tsvector',
536  amprocrighttype => 'tsvector', amprocnum => '2',
537  amproc => 'gtsvector_union' },
538{ amprocfamily => 'gist/tsvector_ops', amproclefttype => 'tsvector',
539  amprocrighttype => 'tsvector', amprocnum => '3',
540  amproc => 'gtsvector_compress' },
541{ amprocfamily => 'gist/tsvector_ops', amproclefttype => 'tsvector',
542  amprocrighttype => 'tsvector', amprocnum => '4',
543  amproc => 'gtsvector_decompress' },
544{ amprocfamily => 'gist/tsvector_ops', amproclefttype => 'tsvector',
545  amprocrighttype => 'tsvector', amprocnum => '5',
546  amproc => 'gtsvector_penalty' },
547{ amprocfamily => 'gist/tsvector_ops', amproclefttype => 'tsvector',
548  amprocrighttype => 'tsvector', amprocnum => '6',
549  amproc => 'gtsvector_picksplit' },
550{ amprocfamily => 'gist/tsvector_ops', amproclefttype => 'tsvector',
551  amprocrighttype => 'tsvector', amprocnum => '7', amproc => 'gtsvector_same' },
552{ amprocfamily => 'gist/tsvector_ops', amproclefttype => 'tsvector',
553  amprocrighttype => 'tsvector', amprocnum => '10',
554  amproc => 'gtsvector_options' },
555{ amprocfamily => 'gist/tsquery_ops', amproclefttype => 'tsquery',
556  amprocrighttype => 'tsquery', amprocnum => '1',
557  amproc => 'gtsquery_consistent(internal,tsquery,int2,oid,internal)' },
558{ amprocfamily => 'gist/tsquery_ops', amproclefttype => 'tsquery',
559  amprocrighttype => 'tsquery', amprocnum => '2', amproc => 'gtsquery_union' },
560{ amprocfamily => 'gist/tsquery_ops', amproclefttype => 'tsquery',
561  amprocrighttype => 'tsquery', amprocnum => '3',
562  amproc => 'gtsquery_compress' },
563{ amprocfamily => 'gist/tsquery_ops', amproclefttype => 'tsquery',
564  amprocrighttype => 'tsquery', amprocnum => '5',
565  amproc => 'gtsquery_penalty' },
566{ amprocfamily => 'gist/tsquery_ops', amproclefttype => 'tsquery',
567  amprocrighttype => 'tsquery', amprocnum => '6',
568  amproc => 'gtsquery_picksplit' },
569{ amprocfamily => 'gist/tsquery_ops', amproclefttype => 'tsquery',
570  amprocrighttype => 'tsquery', amprocnum => '7', amproc => 'gtsquery_same' },
571{ amprocfamily => 'gist/range_ops', amproclefttype => 'anyrange',
572  amprocrighttype => 'anyrange', amprocnum => '1',
573  amproc => 'range_gist_consistent' },
574{ amprocfamily => 'gist/range_ops', amproclefttype => 'anyrange',
575  amprocrighttype => 'anyrange', amprocnum => '2',
576  amproc => 'range_gist_union' },
577{ amprocfamily => 'gist/range_ops', amproclefttype => 'anyrange',
578  amprocrighttype => 'anyrange', amprocnum => '5',
579  amproc => 'range_gist_penalty' },
580{ amprocfamily => 'gist/range_ops', amproclefttype => 'anyrange',
581  amprocrighttype => 'anyrange', amprocnum => '6',
582  amproc => 'range_gist_picksplit' },
583{ amprocfamily => 'gist/range_ops', amproclefttype => 'anyrange',
584  amprocrighttype => 'anyrange', amprocnum => '7',
585  amproc => 'range_gist_same' },
586{ amprocfamily => 'gist/network_ops', amproclefttype => 'inet',
587  amprocrighttype => 'inet', amprocnum => '1',
588  amproc => 'inet_gist_consistent' },
589{ amprocfamily => 'gist/network_ops', amproclefttype => 'inet',
590  amprocrighttype => 'inet', amprocnum => '2', amproc => 'inet_gist_union' },
591{ amprocfamily => 'gist/network_ops', amproclefttype => 'inet',
592  amprocrighttype => 'inet', amprocnum => '3', amproc => 'inet_gist_compress' },
593{ amprocfamily => 'gist/network_ops', amproclefttype => 'inet',
594  amprocrighttype => 'inet', amprocnum => '5', amproc => 'inet_gist_penalty' },
595{ amprocfamily => 'gist/network_ops', amproclefttype => 'inet',
596  amprocrighttype => 'inet', amprocnum => '6',
597  amproc => 'inet_gist_picksplit' },
598{ amprocfamily => 'gist/network_ops', amproclefttype => 'inet',
599  amprocrighttype => 'inet', amprocnum => '7', amproc => 'inet_gist_same' },
600{ amprocfamily => 'gist/network_ops', amproclefttype => 'inet',
601  amprocrighttype => 'inet', amprocnum => '9', amproc => 'inet_gist_fetch' },
602
603# gin
604{ amprocfamily => 'gin/array_ops', amproclefttype => 'anyarray',
605  amprocrighttype => 'anyarray', amprocnum => '2',
606  amproc => 'ginarrayextract(anyarray,internal,internal)' },
607{ amprocfamily => 'gin/array_ops', amproclefttype => 'anyarray',
608  amprocrighttype => 'anyarray', amprocnum => '3',
609  amproc => 'ginqueryarrayextract' },
610{ amprocfamily => 'gin/array_ops', amproclefttype => 'anyarray',
611  amprocrighttype => 'anyarray', amprocnum => '4',
612  amproc => 'ginarrayconsistent' },
613{ amprocfamily => 'gin/array_ops', amproclefttype => 'anyarray',
614  amprocrighttype => 'anyarray', amprocnum => '6',
615  amproc => 'ginarraytriconsistent' },
616{ amprocfamily => 'gin/tsvector_ops', amproclefttype => 'tsvector',
617  amprocrighttype => 'tsvector', amprocnum => '1',
618  amproc => 'gin_cmp_tslexeme' },
619{ amprocfamily => 'gin/tsvector_ops', amproclefttype => 'tsvector',
620  amprocrighttype => 'tsvector', amprocnum => '2',
621  amproc => 'gin_extract_tsvector(tsvector,internal,internal)' },
622{ amprocfamily => 'gin/tsvector_ops', amproclefttype => 'tsvector',
623  amprocrighttype => 'tsvector', amprocnum => '3',
624  amproc => 'gin_extract_tsquery(tsvector,internal,int2,internal,internal,internal,internal)' },
625{ amprocfamily => 'gin/tsvector_ops', amproclefttype => 'tsvector',
626  amprocrighttype => 'tsvector', amprocnum => '4',
627  amproc => 'gin_tsquery_consistent(internal,int2,tsvector,int4,internal,internal,internal,internal)' },
628{ amprocfamily => 'gin/tsvector_ops', amproclefttype => 'tsvector',
629  amprocrighttype => 'tsvector', amprocnum => '5', amproc => 'gin_cmp_prefix' },
630{ amprocfamily => 'gin/tsvector_ops', amproclefttype => 'tsvector',
631  amprocrighttype => 'tsvector', amprocnum => '6',
632  amproc => 'gin_tsquery_triconsistent' },
633{ amprocfamily => 'gin/jsonb_ops', amproclefttype => 'jsonb',
634  amprocrighttype => 'jsonb', amprocnum => '1', amproc => 'gin_compare_jsonb' },
635{ amprocfamily => 'gin/jsonb_ops', amproclefttype => 'jsonb',
636  amprocrighttype => 'jsonb', amprocnum => '2', amproc => 'gin_extract_jsonb' },
637{ amprocfamily => 'gin/jsonb_ops', amproclefttype => 'jsonb',
638  amprocrighttype => 'jsonb', amprocnum => '3',
639  amproc => 'gin_extract_jsonb_query' },
640{ amprocfamily => 'gin/jsonb_ops', amproclefttype => 'jsonb',
641  amprocrighttype => 'jsonb', amprocnum => '4',
642  amproc => 'gin_consistent_jsonb' },
643{ amprocfamily => 'gin/jsonb_ops', amproclefttype => 'jsonb',
644  amprocrighttype => 'jsonb', amprocnum => '6',
645  amproc => 'gin_triconsistent_jsonb' },
646{ amprocfamily => 'gin/jsonb_path_ops', amproclefttype => 'jsonb',
647  amprocrighttype => 'jsonb', amprocnum => '1', amproc => 'btint4cmp' },
648{ amprocfamily => 'gin/jsonb_path_ops', amproclefttype => 'jsonb',
649  amprocrighttype => 'jsonb', amprocnum => '2',
650  amproc => 'gin_extract_jsonb_path' },
651{ amprocfamily => 'gin/jsonb_path_ops', amproclefttype => 'jsonb',
652  amprocrighttype => 'jsonb', amprocnum => '3',
653  amproc => 'gin_extract_jsonb_query_path' },
654{ amprocfamily => 'gin/jsonb_path_ops', amproclefttype => 'jsonb',
655  amprocrighttype => 'jsonb', amprocnum => '4',
656  amproc => 'gin_consistent_jsonb_path' },
657{ amprocfamily => 'gin/jsonb_path_ops', amproclefttype => 'jsonb',
658  amprocrighttype => 'jsonb', amprocnum => '6',
659  amproc => 'gin_triconsistent_jsonb_path' },
660
661# sp-gist
662{ amprocfamily => 'spgist/range_ops', amproclefttype => 'anyrange',
663  amprocrighttype => 'anyrange', amprocnum => '1',
664  amproc => 'spg_range_quad_config' },
665{ amprocfamily => 'spgist/range_ops', amproclefttype => 'anyrange',
666  amprocrighttype => 'anyrange', amprocnum => '2',
667  amproc => 'spg_range_quad_choose' },
668{ amprocfamily => 'spgist/range_ops', amproclefttype => 'anyrange',
669  amprocrighttype => 'anyrange', amprocnum => '3',
670  amproc => 'spg_range_quad_picksplit' },
671{ amprocfamily => 'spgist/range_ops', amproclefttype => 'anyrange',
672  amprocrighttype => 'anyrange', amprocnum => '4',
673  amproc => 'spg_range_quad_inner_consistent' },
674{ amprocfamily => 'spgist/range_ops', amproclefttype => 'anyrange',
675  amprocrighttype => 'anyrange', amprocnum => '5',
676  amproc => 'spg_range_quad_leaf_consistent' },
677{ amprocfamily => 'spgist/network_ops', amproclefttype => 'inet',
678  amprocrighttype => 'inet', amprocnum => '1', amproc => 'inet_spg_config' },
679{ amprocfamily => 'spgist/network_ops', amproclefttype => 'inet',
680  amprocrighttype => 'inet', amprocnum => '2', amproc => 'inet_spg_choose' },
681{ amprocfamily => 'spgist/network_ops', amproclefttype => 'inet',
682  amprocrighttype => 'inet', amprocnum => '3', amproc => 'inet_spg_picksplit' },
683{ amprocfamily => 'spgist/network_ops', amproclefttype => 'inet',
684  amprocrighttype => 'inet', amprocnum => '4',
685  amproc => 'inet_spg_inner_consistent' },
686{ amprocfamily => 'spgist/network_ops', amproclefttype => 'inet',
687  amprocrighttype => 'inet', amprocnum => '5',
688  amproc => 'inet_spg_leaf_consistent' },
689{ amprocfamily => 'spgist/quad_point_ops', amproclefttype => 'point',
690  amprocrighttype => 'point', amprocnum => '1', amproc => 'spg_quad_config' },
691{ amprocfamily => 'spgist/quad_point_ops', amproclefttype => 'point',
692  amprocrighttype => 'point', amprocnum => '2', amproc => 'spg_quad_choose' },
693{ amprocfamily => 'spgist/quad_point_ops', amproclefttype => 'point',
694  amprocrighttype => 'point', amprocnum => '3',
695  amproc => 'spg_quad_picksplit' },
696{ amprocfamily => 'spgist/quad_point_ops', amproclefttype => 'point',
697  amprocrighttype => 'point', amprocnum => '4',
698  amproc => 'spg_quad_inner_consistent' },
699{ amprocfamily => 'spgist/quad_point_ops', amproclefttype => 'point',
700  amprocrighttype => 'point', amprocnum => '5',
701  amproc => 'spg_quad_leaf_consistent' },
702{ amprocfamily => 'spgist/kd_point_ops', amproclefttype => 'point',
703  amprocrighttype => 'point', amprocnum => '1', amproc => 'spg_kd_config' },
704{ amprocfamily => 'spgist/kd_point_ops', amproclefttype => 'point',
705  amprocrighttype => 'point', amprocnum => '2', amproc => 'spg_kd_choose' },
706{ amprocfamily => 'spgist/kd_point_ops', amproclefttype => 'point',
707  amprocrighttype => 'point', amprocnum => '3', amproc => 'spg_kd_picksplit' },
708{ amprocfamily => 'spgist/kd_point_ops', amproclefttype => 'point',
709  amprocrighttype => 'point', amprocnum => '4',
710  amproc => 'spg_kd_inner_consistent' },
711{ amprocfamily => 'spgist/kd_point_ops', amproclefttype => 'point',
712  amprocrighttype => 'point', amprocnum => '5',
713  amproc => 'spg_quad_leaf_consistent' },
714{ amprocfamily => 'spgist/text_ops', amproclefttype => 'text',
715  amprocrighttype => 'text', amprocnum => '1', amproc => 'spg_text_config' },
716{ amprocfamily => 'spgist/text_ops', amproclefttype => 'text',
717  amprocrighttype => 'text', amprocnum => '2', amproc => 'spg_text_choose' },
718{ amprocfamily => 'spgist/text_ops', amproclefttype => 'text',
719  amprocrighttype => 'text', amprocnum => '3', amproc => 'spg_text_picksplit' },
720{ amprocfamily => 'spgist/text_ops', amproclefttype => 'text',
721  amprocrighttype => 'text', amprocnum => '4',
722  amproc => 'spg_text_inner_consistent' },
723{ amprocfamily => 'spgist/text_ops', amproclefttype => 'text',
724  amprocrighttype => 'text', amprocnum => '5',
725  amproc => 'spg_text_leaf_consistent' },
726{ amprocfamily => 'spgist/box_ops', amproclefttype => 'box',
727  amprocrighttype => 'box', amprocnum => '1', amproc => 'spg_box_quad_config' },
728{ amprocfamily => 'spgist/box_ops', amproclefttype => 'box',
729  amprocrighttype => 'box', amprocnum => '2', amproc => 'spg_box_quad_choose' },
730{ amprocfamily => 'spgist/box_ops', amproclefttype => 'box',
731  amprocrighttype => 'box', amprocnum => '3',
732  amproc => 'spg_box_quad_picksplit' },
733{ amprocfamily => 'spgist/box_ops', amproclefttype => 'box',
734  amprocrighttype => 'box', amprocnum => '4',
735  amproc => 'spg_box_quad_inner_consistent' },
736{ amprocfamily => 'spgist/box_ops', amproclefttype => 'box',
737  amprocrighttype => 'box', amprocnum => '5',
738  amproc => 'spg_box_quad_leaf_consistent' },
739{ amprocfamily => 'spgist/poly_ops', amproclefttype => 'polygon',
740  amprocrighttype => 'polygon', amprocnum => '1',
741  amproc => 'spg_bbox_quad_config' },
742{ amprocfamily => 'spgist/poly_ops', amproclefttype => 'polygon',
743  amprocrighttype => 'polygon', amprocnum => '2',
744  amproc => 'spg_box_quad_choose' },
745{ amprocfamily => 'spgist/poly_ops', amproclefttype => 'polygon',
746  amprocrighttype => 'polygon', amprocnum => '3',
747  amproc => 'spg_box_quad_picksplit' },
748{ amprocfamily => 'spgist/poly_ops', amproclefttype => 'polygon',
749  amprocrighttype => 'polygon', amprocnum => '4',
750  amproc => 'spg_box_quad_inner_consistent' },
751{ amprocfamily => 'spgist/poly_ops', amproclefttype => 'polygon',
752  amprocrighttype => 'polygon', amprocnum => '5',
753  amproc => 'spg_box_quad_leaf_consistent' },
754{ amprocfamily => 'spgist/poly_ops', amproclefttype => 'polygon',
755  amprocrighttype => 'polygon', amprocnum => '6',
756  amproc => 'spg_poly_quad_compress' },
757
758# BRIN opclasses
759
760# minmax bytea
761{ amprocfamily => 'brin/bytea_minmax_ops', amproclefttype => 'bytea',
762  amprocrighttype => 'bytea', amprocnum => '1',
763  amproc => 'brin_minmax_opcinfo' },
764{ amprocfamily => 'brin/bytea_minmax_ops', amproclefttype => 'bytea',
765  amprocrighttype => 'bytea', amprocnum => '2',
766  amproc => 'brin_minmax_add_value' },
767{ amprocfamily => 'brin/bytea_minmax_ops', amproclefttype => 'bytea',
768  amprocrighttype => 'bytea', amprocnum => '3',
769  amproc => 'brin_minmax_consistent' },
770{ amprocfamily => 'brin/bytea_minmax_ops', amproclefttype => 'bytea',
771  amprocrighttype => 'bytea', amprocnum => '4', amproc => 'brin_minmax_union' },
772
773# minmax "char"
774{ amprocfamily => 'brin/char_minmax_ops', amproclefttype => 'char',
775  amprocrighttype => 'char', amprocnum => '1',
776  amproc => 'brin_minmax_opcinfo' },
777{ amprocfamily => 'brin/char_minmax_ops', amproclefttype => 'char',
778  amprocrighttype => 'char', amprocnum => '2',
779  amproc => 'brin_minmax_add_value' },
780{ amprocfamily => 'brin/char_minmax_ops', amproclefttype => 'char',
781  amprocrighttype => 'char', amprocnum => '3',
782  amproc => 'brin_minmax_consistent' },
783{ amprocfamily => 'brin/char_minmax_ops', amproclefttype => 'char',
784  amprocrighttype => 'char', amprocnum => '4', amproc => 'brin_minmax_union' },
785
786# minmax name
787{ amprocfamily => 'brin/name_minmax_ops', amproclefttype => 'name',
788  amprocrighttype => 'name', amprocnum => '1',
789  amproc => 'brin_minmax_opcinfo' },
790{ amprocfamily => 'brin/name_minmax_ops', amproclefttype => 'name',
791  amprocrighttype => 'name', amprocnum => '2',
792  amproc => 'brin_minmax_add_value' },
793{ amprocfamily => 'brin/name_minmax_ops', amproclefttype => 'name',
794  amprocrighttype => 'name', amprocnum => '3',
795  amproc => 'brin_minmax_consistent' },
796{ amprocfamily => 'brin/name_minmax_ops', amproclefttype => 'name',
797  amprocrighttype => 'name', amprocnum => '4', amproc => 'brin_minmax_union' },
798
799# minmax integer: int2, int4, int8
800{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int8',
801  amprocrighttype => 'int8', amprocnum => '1',
802  amproc => 'brin_minmax_opcinfo' },
803{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int8',
804  amprocrighttype => 'int8', amprocnum => '2',
805  amproc => 'brin_minmax_add_value' },
806{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int8',
807  amprocrighttype => 'int8', amprocnum => '3',
808  amproc => 'brin_minmax_consistent' },
809{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int8',
810  amprocrighttype => 'int8', amprocnum => '4', amproc => 'brin_minmax_union' },
811{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int8',
812  amprocrighttype => 'int2', amprocnum => '1',
813  amproc => 'brin_minmax_opcinfo' },
814{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int8',
815  amprocrighttype => 'int2', amprocnum => '2',
816  amproc => 'brin_minmax_add_value' },
817{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int8',
818  amprocrighttype => 'int2', amprocnum => '3',
819  amproc => 'brin_minmax_consistent' },
820{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int8',
821  amprocrighttype => 'int2', amprocnum => '4', amproc => 'brin_minmax_union' },
822{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int8',
823  amprocrighttype => 'int4', amprocnum => '1',
824  amproc => 'brin_minmax_opcinfo' },
825{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int8',
826  amprocrighttype => 'int4', amprocnum => '2',
827  amproc => 'brin_minmax_add_value' },
828{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int8',
829  amprocrighttype => 'int4', amprocnum => '3',
830  amproc => 'brin_minmax_consistent' },
831{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int8',
832  amprocrighttype => 'int4', amprocnum => '4', amproc => 'brin_minmax_union' },
833{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int2',
834  amprocrighttype => 'int2', amprocnum => '1',
835  amproc => 'brin_minmax_opcinfo' },
836{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int2',
837  amprocrighttype => 'int2', amprocnum => '2',
838  amproc => 'brin_minmax_add_value' },
839{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int2',
840  amprocrighttype => 'int2', amprocnum => '3',
841  amproc => 'brin_minmax_consistent' },
842{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int2',
843  amprocrighttype => 'int2', amprocnum => '4', amproc => 'brin_minmax_union' },
844{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int2',
845  amprocrighttype => 'int8', amprocnum => '1',
846  amproc => 'brin_minmax_opcinfo' },
847{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int2',
848  amprocrighttype => 'int8', amprocnum => '2',
849  amproc => 'brin_minmax_add_value' },
850{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int2',
851  amprocrighttype => 'int8', amprocnum => '3',
852  amproc => 'brin_minmax_consistent' },
853{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int2',
854  amprocrighttype => 'int8', amprocnum => '4', amproc => 'brin_minmax_union' },
855{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int2',
856  amprocrighttype => 'int4', amprocnum => '1',
857  amproc => 'brin_minmax_opcinfo' },
858{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int2',
859  amprocrighttype => 'int4', amprocnum => '2',
860  amproc => 'brin_minmax_add_value' },
861{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int2',
862  amprocrighttype => 'int4', amprocnum => '3',
863  amproc => 'brin_minmax_consistent' },
864{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int2',
865  amprocrighttype => 'int4', amprocnum => '4', amproc => 'brin_minmax_union' },
866{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int4',
867  amprocrighttype => 'int4', amprocnum => '1',
868  amproc => 'brin_minmax_opcinfo' },
869{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int4',
870  amprocrighttype => 'int4', amprocnum => '2',
871  amproc => 'brin_minmax_add_value' },
872{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int4',
873  amprocrighttype => 'int4', amprocnum => '3',
874  amproc => 'brin_minmax_consistent' },
875{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int4',
876  amprocrighttype => 'int4', amprocnum => '4', amproc => 'brin_minmax_union' },
877{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int4',
878  amprocrighttype => 'int8', amprocnum => '1',
879  amproc => 'brin_minmax_opcinfo' },
880{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int4',
881  amprocrighttype => 'int8', amprocnum => '2',
882  amproc => 'brin_minmax_add_value' },
883{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int4',
884  amprocrighttype => 'int8', amprocnum => '3',
885  amproc => 'brin_minmax_consistent' },
886{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int4',
887  amprocrighttype => 'int8', amprocnum => '4', amproc => 'brin_minmax_union' },
888{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int4',
889  amprocrighttype => 'int2', amprocnum => '1',
890  amproc => 'brin_minmax_opcinfo' },
891{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int4',
892  amprocrighttype => 'int2', amprocnum => '2',
893  amproc => 'brin_minmax_add_value' },
894{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int4',
895  amprocrighttype => 'int2', amprocnum => '3',
896  amproc => 'brin_minmax_consistent' },
897{ amprocfamily => 'brin/integer_minmax_ops', amproclefttype => 'int4',
898  amprocrighttype => 'int2', amprocnum => '4', amproc => 'brin_minmax_union' },
899
900# minmax text
901{ amprocfamily => 'brin/text_minmax_ops', amproclefttype => 'text',
902  amprocrighttype => 'text', amprocnum => '1',
903  amproc => 'brin_minmax_opcinfo' },
904{ amprocfamily => 'brin/text_minmax_ops', amproclefttype => 'text',
905  amprocrighttype => 'text', amprocnum => '2',
906  amproc => 'brin_minmax_add_value' },
907{ amprocfamily => 'brin/text_minmax_ops', amproclefttype => 'text',
908  amprocrighttype => 'text', amprocnum => '3',
909  amproc => 'brin_minmax_consistent' },
910{ amprocfamily => 'brin/text_minmax_ops', amproclefttype => 'text',
911  amprocrighttype => 'text', amprocnum => '4', amproc => 'brin_minmax_union' },
912
913# minmax oid
914{ amprocfamily => 'brin/oid_minmax_ops', amproclefttype => 'oid',
915  amprocrighttype => 'oid', amprocnum => '1', amproc => 'brin_minmax_opcinfo' },
916{ amprocfamily => 'brin/oid_minmax_ops', amproclefttype => 'oid',
917  amprocrighttype => 'oid', amprocnum => '2',
918  amproc => 'brin_minmax_add_value' },
919{ amprocfamily => 'brin/oid_minmax_ops', amproclefttype => 'oid',
920  amprocrighttype => 'oid', amprocnum => '3',
921  amproc => 'brin_minmax_consistent' },
922{ amprocfamily => 'brin/oid_minmax_ops', amproclefttype => 'oid',
923  amprocrighttype => 'oid', amprocnum => '4', amproc => 'brin_minmax_union' },
924
925# minmax tid
926{ amprocfamily => 'brin/tid_minmax_ops', amproclefttype => 'tid',
927  amprocrighttype => 'tid', amprocnum => '1', amproc => 'brin_minmax_opcinfo' },
928{ amprocfamily => 'brin/tid_minmax_ops', amproclefttype => 'tid',
929  amprocrighttype => 'tid', amprocnum => '2',
930  amproc => 'brin_minmax_add_value' },
931{ amprocfamily => 'brin/tid_minmax_ops', amproclefttype => 'tid',
932  amprocrighttype => 'tid', amprocnum => '3',
933  amproc => 'brin_minmax_consistent' },
934{ amprocfamily => 'brin/tid_minmax_ops', amproclefttype => 'tid',
935  amprocrighttype => 'tid', amprocnum => '4', amproc => 'brin_minmax_union' },
936
937# minmax float
938{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float4',
939  amprocrighttype => 'float4', amprocnum => '1',
940  amproc => 'brin_minmax_opcinfo' },
941{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float4',
942  amprocrighttype => 'float4', amprocnum => '2',
943  amproc => 'brin_minmax_add_value' },
944{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float4',
945  amprocrighttype => 'float4', amprocnum => '3',
946  amproc => 'brin_minmax_consistent' },
947{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float4',
948  amprocrighttype => 'float4', amprocnum => '4',
949  amproc => 'brin_minmax_union' },
950{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float4',
951  amprocrighttype => 'float8', amprocnum => '1',
952  amproc => 'brin_minmax_opcinfo' },
953{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float4',
954  amprocrighttype => 'float8', amprocnum => '2',
955  amproc => 'brin_minmax_add_value' },
956{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float4',
957  amprocrighttype => 'float8', amprocnum => '3',
958  amproc => 'brin_minmax_consistent' },
959{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float4',
960  amprocrighttype => 'float8', amprocnum => '4',
961  amproc => 'brin_minmax_union' },
962{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float8',
963  amprocrighttype => 'float8', amprocnum => '1',
964  amproc => 'brin_minmax_opcinfo' },
965{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float8',
966  amprocrighttype => 'float8', amprocnum => '2',
967  amproc => 'brin_minmax_add_value' },
968{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float8',
969  amprocrighttype => 'float8', amprocnum => '3',
970  amproc => 'brin_minmax_consistent' },
971{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float8',
972  amprocrighttype => 'float8', amprocnum => '4',
973  amproc => 'brin_minmax_union' },
974{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float8',
975  amprocrighttype => 'float4', amprocnum => '1',
976  amproc => 'brin_minmax_opcinfo' },
977{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float8',
978  amprocrighttype => 'float4', amprocnum => '2',
979  amproc => 'brin_minmax_add_value' },
980{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float8',
981  amprocrighttype => 'float4', amprocnum => '3',
982  amproc => 'brin_minmax_consistent' },
983{ amprocfamily => 'brin/float_minmax_ops', amproclefttype => 'float8',
984  amprocrighttype => 'float4', amprocnum => '4',
985  amproc => 'brin_minmax_union' },
986
987# minmax macaddr
988{ amprocfamily => 'brin/macaddr_minmax_ops', amproclefttype => 'macaddr',
989  amprocrighttype => 'macaddr', amprocnum => '1',
990  amproc => 'brin_minmax_opcinfo' },
991{ amprocfamily => 'brin/macaddr_minmax_ops', amproclefttype => 'macaddr',
992  amprocrighttype => 'macaddr', amprocnum => '2',
993  amproc => 'brin_minmax_add_value' },
994{ amprocfamily => 'brin/macaddr_minmax_ops', amproclefttype => 'macaddr',
995  amprocrighttype => 'macaddr', amprocnum => '3',
996  amproc => 'brin_minmax_consistent' },
997{ amprocfamily => 'brin/macaddr_minmax_ops', amproclefttype => 'macaddr',
998  amprocrighttype => 'macaddr', amprocnum => '4',
999  amproc => 'brin_minmax_union' },
1000
1001# minmax macaddr8
1002{ amprocfamily => 'brin/macaddr8_minmax_ops', amproclefttype => 'macaddr8',
1003  amprocrighttype => 'macaddr8', amprocnum => '1',
1004  amproc => 'brin_minmax_opcinfo' },
1005{ amprocfamily => 'brin/macaddr8_minmax_ops', amproclefttype => 'macaddr8',
1006  amprocrighttype => 'macaddr8', amprocnum => '2',
1007  amproc => 'brin_minmax_add_value' },
1008{ amprocfamily => 'brin/macaddr8_minmax_ops', amproclefttype => 'macaddr8',
1009  amprocrighttype => 'macaddr8', amprocnum => '3',
1010  amproc => 'brin_minmax_consistent' },
1011{ amprocfamily => 'brin/macaddr8_minmax_ops', amproclefttype => 'macaddr8',
1012  amprocrighttype => 'macaddr8', amprocnum => '4',
1013  amproc => 'brin_minmax_union' },
1014
1015# minmax inet
1016{ amprocfamily => 'brin/network_minmax_ops', amproclefttype => 'inet',
1017  amprocrighttype => 'inet', amprocnum => '1',
1018  amproc => 'brin_minmax_opcinfo' },
1019{ amprocfamily => 'brin/network_minmax_ops', amproclefttype => 'inet',
1020  amprocrighttype => 'inet', amprocnum => '2',
1021  amproc => 'brin_minmax_add_value' },
1022{ amprocfamily => 'brin/network_minmax_ops', amproclefttype => 'inet',
1023  amprocrighttype => 'inet', amprocnum => '3',
1024  amproc => 'brin_minmax_consistent' },
1025{ amprocfamily => 'brin/network_minmax_ops', amproclefttype => 'inet',
1026  amprocrighttype => 'inet', amprocnum => '4', amproc => 'brin_minmax_union' },
1027
1028# inclusion inet
1029{ amprocfamily => 'brin/network_inclusion_ops', amproclefttype => 'inet',
1030  amprocrighttype => 'inet', amprocnum => '1',
1031  amproc => 'brin_inclusion_opcinfo' },
1032{ amprocfamily => 'brin/network_inclusion_ops', amproclefttype => 'inet',
1033  amprocrighttype => 'inet', amprocnum => '2',
1034  amproc => 'brin_inclusion_add_value' },
1035{ amprocfamily => 'brin/network_inclusion_ops', amproclefttype => 'inet',
1036  amprocrighttype => 'inet', amprocnum => '3',
1037  amproc => 'brin_inclusion_consistent' },
1038{ amprocfamily => 'brin/network_inclusion_ops', amproclefttype => 'inet',
1039  amprocrighttype => 'inet', amprocnum => '4',
1040  amproc => 'brin_inclusion_union' },
1041{ amprocfamily => 'brin/network_inclusion_ops', amproclefttype => 'inet',
1042  amprocrighttype => 'inet', amprocnum => '11', amproc => 'inet_merge' },
1043{ amprocfamily => 'brin/network_inclusion_ops', amproclefttype => 'inet',
1044  amprocrighttype => 'inet', amprocnum => '12', amproc => 'inet_same_family' },
1045{ amprocfamily => 'brin/network_inclusion_ops', amproclefttype => 'inet',
1046  amprocrighttype => 'inet', amprocnum => '13', amproc => 'network_supeq' },
1047
1048# minmax character
1049{ amprocfamily => 'brin/bpchar_minmax_ops', amproclefttype => 'bpchar',
1050  amprocrighttype => 'bpchar', amprocnum => '1',
1051  amproc => 'brin_minmax_opcinfo' },
1052{ amprocfamily => 'brin/bpchar_minmax_ops', amproclefttype => 'bpchar',
1053  amprocrighttype => 'bpchar', amprocnum => '2',
1054  amproc => 'brin_minmax_add_value' },
1055{ amprocfamily => 'brin/bpchar_minmax_ops', amproclefttype => 'bpchar',
1056  amprocrighttype => 'bpchar', amprocnum => '3',
1057  amproc => 'brin_minmax_consistent' },
1058{ amprocfamily => 'brin/bpchar_minmax_ops', amproclefttype => 'bpchar',
1059  amprocrighttype => 'bpchar', amprocnum => '4',
1060  amproc => 'brin_minmax_union' },
1061
1062# minmax time without time zone
1063{ amprocfamily => 'brin/time_minmax_ops', amproclefttype => 'time',
1064  amprocrighttype => 'time', amprocnum => '1',
1065  amproc => 'brin_minmax_opcinfo' },
1066{ amprocfamily => 'brin/time_minmax_ops', amproclefttype => 'time',
1067  amprocrighttype => 'time', amprocnum => '2',
1068  amproc => 'brin_minmax_add_value' },
1069{ amprocfamily => 'brin/time_minmax_ops', amproclefttype => 'time',
1070  amprocrighttype => 'time', amprocnum => '3',
1071  amproc => 'brin_minmax_consistent' },
1072{ amprocfamily => 'brin/time_minmax_ops', amproclefttype => 'time',
1073  amprocrighttype => 'time', amprocnum => '4', amproc => 'brin_minmax_union' },
1074
1075# minmax datetime (date, timestamp, timestamptz)
1076{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamp',
1077  amprocrighttype => 'timestamp', amprocnum => '1',
1078  amproc => 'brin_minmax_opcinfo' },
1079{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamp',
1080  amprocrighttype => 'timestamp', amprocnum => '2',
1081  amproc => 'brin_minmax_add_value' },
1082{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamp',
1083  amprocrighttype => 'timestamp', amprocnum => '3',
1084  amproc => 'brin_minmax_consistent' },
1085{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamp',
1086  amprocrighttype => 'timestamp', amprocnum => '4',
1087  amproc => 'brin_minmax_union' },
1088{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamp',
1089  amprocrighttype => 'timestamptz', amprocnum => '1',
1090  amproc => 'brin_minmax_opcinfo' },
1091{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamp',
1092  amprocrighttype => 'timestamptz', amprocnum => '2',
1093  amproc => 'brin_minmax_add_value' },
1094{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamp',
1095  amprocrighttype => 'timestamptz', amprocnum => '3',
1096  amproc => 'brin_minmax_consistent' },
1097{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamp',
1098  amprocrighttype => 'timestamptz', amprocnum => '4',
1099  amproc => 'brin_minmax_union' },
1100{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamp',
1101  amprocrighttype => 'date', amprocnum => '1',
1102  amproc => 'brin_minmax_opcinfo' },
1103{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamp',
1104  amprocrighttype => 'date', amprocnum => '2',
1105  amproc => 'brin_minmax_add_value' },
1106{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamp',
1107  amprocrighttype => 'date', amprocnum => '3',
1108  amproc => 'brin_minmax_consistent' },
1109{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamp',
1110  amprocrighttype => 'date', amprocnum => '4', amproc => 'brin_minmax_union' },
1111{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamptz',
1112  amprocrighttype => 'timestamptz', amprocnum => '1',
1113  amproc => 'brin_minmax_opcinfo' },
1114{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamptz',
1115  amprocrighttype => 'timestamptz', amprocnum => '2',
1116  amproc => 'brin_minmax_add_value' },
1117{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamptz',
1118  amprocrighttype => 'timestamptz', amprocnum => '3',
1119  amproc => 'brin_minmax_consistent' },
1120{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamptz',
1121  amprocrighttype => 'timestamptz', amprocnum => '4',
1122  amproc => 'brin_minmax_union' },
1123{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamptz',
1124  amprocrighttype => 'timestamp', amprocnum => '1',
1125  amproc => 'brin_minmax_opcinfo' },
1126{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamptz',
1127  amprocrighttype => 'timestamp', amprocnum => '2',
1128  amproc => 'brin_minmax_add_value' },
1129{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamptz',
1130  amprocrighttype => 'timestamp', amprocnum => '3',
1131  amproc => 'brin_minmax_consistent' },
1132{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamptz',
1133  amprocrighttype => 'timestamp', amprocnum => '4',
1134  amproc => 'brin_minmax_union' },
1135{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamptz',
1136  amprocrighttype => 'date', amprocnum => '1',
1137  amproc => 'brin_minmax_opcinfo' },
1138{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamptz',
1139  amprocrighttype => 'date', amprocnum => '2',
1140  amproc => 'brin_minmax_add_value' },
1141{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamptz',
1142  amprocrighttype => 'date', amprocnum => '3',
1143  amproc => 'brin_minmax_consistent' },
1144{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'timestamptz',
1145  amprocrighttype => 'date', amprocnum => '4', amproc => 'brin_minmax_union' },
1146{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'date',
1147  amprocrighttype => 'date', amprocnum => '1',
1148  amproc => 'brin_minmax_opcinfo' },
1149{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'date',
1150  amprocrighttype => 'date', amprocnum => '2',
1151  amproc => 'brin_minmax_add_value' },
1152{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'date',
1153  amprocrighttype => 'date', amprocnum => '3',
1154  amproc => 'brin_minmax_consistent' },
1155{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'date',
1156  amprocrighttype => 'date', amprocnum => '4', amproc => 'brin_minmax_union' },
1157{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'date',
1158  amprocrighttype => 'timestamp', amprocnum => '1',
1159  amproc => 'brin_minmax_opcinfo' },
1160{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'date',
1161  amprocrighttype => 'timestamp', amprocnum => '2',
1162  amproc => 'brin_minmax_add_value' },
1163{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'date',
1164  amprocrighttype => 'timestamp', amprocnum => '3',
1165  amproc => 'brin_minmax_consistent' },
1166{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'date',
1167  amprocrighttype => 'timestamp', amprocnum => '4',
1168  amproc => 'brin_minmax_union' },
1169{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'date',
1170  amprocrighttype => 'timestamptz', amprocnum => '1',
1171  amproc => 'brin_minmax_opcinfo' },
1172{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'date',
1173  amprocrighttype => 'timestamptz', amprocnum => '2',
1174  amproc => 'brin_minmax_add_value' },
1175{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'date',
1176  amprocrighttype => 'timestamptz', amprocnum => '3',
1177  amproc => 'brin_minmax_consistent' },
1178{ amprocfamily => 'brin/datetime_minmax_ops', amproclefttype => 'date',
1179  amprocrighttype => 'timestamptz', amprocnum => '4',
1180  amproc => 'brin_minmax_union' },
1181
1182# minmax interval
1183{ amprocfamily => 'brin/interval_minmax_ops', amproclefttype => 'interval',
1184  amprocrighttype => 'interval', amprocnum => '1',
1185  amproc => 'brin_minmax_opcinfo' },
1186{ amprocfamily => 'brin/interval_minmax_ops', amproclefttype => 'interval',
1187  amprocrighttype => 'interval', amprocnum => '2',
1188  amproc => 'brin_minmax_add_value' },
1189{ amprocfamily => 'brin/interval_minmax_ops', amproclefttype => 'interval',
1190  amprocrighttype => 'interval', amprocnum => '3',
1191  amproc => 'brin_minmax_consistent' },
1192{ amprocfamily => 'brin/interval_minmax_ops', amproclefttype => 'interval',
1193  amprocrighttype => 'interval', amprocnum => '4',
1194  amproc => 'brin_minmax_union' },
1195
1196# minmax time with time zone
1197{ amprocfamily => 'brin/timetz_minmax_ops', amproclefttype => 'timetz',
1198  amprocrighttype => 'timetz', amprocnum => '1',
1199  amproc => 'brin_minmax_opcinfo' },
1200{ amprocfamily => 'brin/timetz_minmax_ops', amproclefttype => 'timetz',
1201  amprocrighttype => 'timetz', amprocnum => '2',
1202  amproc => 'brin_minmax_add_value' },
1203{ amprocfamily => 'brin/timetz_minmax_ops', amproclefttype => 'timetz',
1204  amprocrighttype => 'timetz', amprocnum => '3',
1205  amproc => 'brin_minmax_consistent' },
1206{ amprocfamily => 'brin/timetz_minmax_ops', amproclefttype => 'timetz',
1207  amprocrighttype => 'timetz', amprocnum => '4',
1208  amproc => 'brin_minmax_union' },
1209
1210# minmax bit
1211{ amprocfamily => 'brin/bit_minmax_ops', amproclefttype => 'bit',
1212  amprocrighttype => 'bit', amprocnum => '1', amproc => 'brin_minmax_opcinfo' },
1213{ amprocfamily => 'brin/bit_minmax_ops', amproclefttype => 'bit',
1214  amprocrighttype => 'bit', amprocnum => '2',
1215  amproc => 'brin_minmax_add_value' },
1216{ amprocfamily => 'brin/bit_minmax_ops', amproclefttype => 'bit',
1217  amprocrighttype => 'bit', amprocnum => '3',
1218  amproc => 'brin_minmax_consistent' },
1219{ amprocfamily => 'brin/bit_minmax_ops', amproclefttype => 'bit',
1220  amprocrighttype => 'bit', amprocnum => '4', amproc => 'brin_minmax_union' },
1221
1222# minmax bit varying
1223{ amprocfamily => 'brin/varbit_minmax_ops', amproclefttype => 'varbit',
1224  amprocrighttype => 'varbit', amprocnum => '1',
1225  amproc => 'brin_minmax_opcinfo' },
1226{ amprocfamily => 'brin/varbit_minmax_ops', amproclefttype => 'varbit',
1227  amprocrighttype => 'varbit', amprocnum => '2',
1228  amproc => 'brin_minmax_add_value' },
1229{ amprocfamily => 'brin/varbit_minmax_ops', amproclefttype => 'varbit',
1230  amprocrighttype => 'varbit', amprocnum => '3',
1231  amproc => 'brin_minmax_consistent' },
1232{ amprocfamily => 'brin/varbit_minmax_ops', amproclefttype => 'varbit',
1233  amprocrighttype => 'varbit', amprocnum => '4',
1234  amproc => 'brin_minmax_union' },
1235
1236# minmax numeric
1237{ amprocfamily => 'brin/numeric_minmax_ops', amproclefttype => 'numeric',
1238  amprocrighttype => 'numeric', amprocnum => '1',
1239  amproc => 'brin_minmax_opcinfo' },
1240{ amprocfamily => 'brin/numeric_minmax_ops', amproclefttype => 'numeric',
1241  amprocrighttype => 'numeric', amprocnum => '2',
1242  amproc => 'brin_minmax_add_value' },
1243{ amprocfamily => 'brin/numeric_minmax_ops', amproclefttype => 'numeric',
1244  amprocrighttype => 'numeric', amprocnum => '3',
1245  amproc => 'brin_minmax_consistent' },
1246{ amprocfamily => 'brin/numeric_minmax_ops', amproclefttype => 'numeric',
1247  amprocrighttype => 'numeric', amprocnum => '4',
1248  amproc => 'brin_minmax_union' },
1249
1250# minmax uuid
1251{ amprocfamily => 'brin/uuid_minmax_ops', amproclefttype => 'uuid',
1252  amprocrighttype => 'uuid', amprocnum => '1',
1253  amproc => 'brin_minmax_opcinfo' },
1254{ amprocfamily => 'brin/uuid_minmax_ops', amproclefttype => 'uuid',
1255  amprocrighttype => 'uuid', amprocnum => '2',
1256  amproc => 'brin_minmax_add_value' },
1257{ amprocfamily => 'brin/uuid_minmax_ops', amproclefttype => 'uuid',
1258  amprocrighttype => 'uuid', amprocnum => '3',
1259  amproc => 'brin_minmax_consistent' },
1260{ amprocfamily => 'brin/uuid_minmax_ops', amproclefttype => 'uuid',
1261  amprocrighttype => 'uuid', amprocnum => '4', amproc => 'brin_minmax_union' },
1262
1263# inclusion range types
1264{ amprocfamily => 'brin/range_inclusion_ops', amproclefttype => 'anyrange',
1265  amprocrighttype => 'anyrange', amprocnum => '1',
1266  amproc => 'brin_inclusion_opcinfo' },
1267{ amprocfamily => 'brin/range_inclusion_ops', amproclefttype => 'anyrange',
1268  amprocrighttype => 'anyrange', amprocnum => '2',
1269  amproc => 'brin_inclusion_add_value' },
1270{ amprocfamily => 'brin/range_inclusion_ops', amproclefttype => 'anyrange',
1271  amprocrighttype => 'anyrange', amprocnum => '3',
1272  amproc => 'brin_inclusion_consistent' },
1273{ amprocfamily => 'brin/range_inclusion_ops', amproclefttype => 'anyrange',
1274  amprocrighttype => 'anyrange', amprocnum => '4',
1275  amproc => 'brin_inclusion_union' },
1276{ amprocfamily => 'brin/range_inclusion_ops', amproclefttype => 'anyrange',
1277  amprocrighttype => 'anyrange', amprocnum => '11', amproc => 'range_merge' },
1278{ amprocfamily => 'brin/range_inclusion_ops', amproclefttype => 'anyrange',
1279  amprocrighttype => 'anyrange', amprocnum => '13',
1280  amproc => 'range_contains' },
1281{ amprocfamily => 'brin/range_inclusion_ops', amproclefttype => 'anyrange',
1282  amprocrighttype => 'anyrange', amprocnum => '14', amproc => 'isempty' },
1283
1284# minmax pg_lsn
1285{ amprocfamily => 'brin/pg_lsn_minmax_ops', amproclefttype => 'pg_lsn',
1286  amprocrighttype => 'pg_lsn', amprocnum => '1',
1287  amproc => 'brin_minmax_opcinfo' },
1288{ amprocfamily => 'brin/pg_lsn_minmax_ops', amproclefttype => 'pg_lsn',
1289  amprocrighttype => 'pg_lsn', amprocnum => '2',
1290  amproc => 'brin_minmax_add_value' },
1291{ amprocfamily => 'brin/pg_lsn_minmax_ops', amproclefttype => 'pg_lsn',
1292  amprocrighttype => 'pg_lsn', amprocnum => '3',
1293  amproc => 'brin_minmax_consistent' },
1294{ amprocfamily => 'brin/pg_lsn_minmax_ops', amproclefttype => 'pg_lsn',
1295  amprocrighttype => 'pg_lsn', amprocnum => '4',
1296  amproc => 'brin_minmax_union' },
1297
1298# inclusion box
1299{ amprocfamily => 'brin/box_inclusion_ops', amproclefttype => 'box',
1300  amprocrighttype => 'box', amprocnum => '1',
1301  amproc => 'brin_inclusion_opcinfo' },
1302{ amprocfamily => 'brin/box_inclusion_ops', amproclefttype => 'box',
1303  amprocrighttype => 'box', amprocnum => '2',
1304  amproc => 'brin_inclusion_add_value' },
1305{ amprocfamily => 'brin/box_inclusion_ops', amproclefttype => 'box',
1306  amprocrighttype => 'box', amprocnum => '3',
1307  amproc => 'brin_inclusion_consistent' },
1308{ amprocfamily => 'brin/box_inclusion_ops', amproclefttype => 'box',
1309  amprocrighttype => 'box', amprocnum => '4',
1310  amproc => 'brin_inclusion_union' },
1311{ amprocfamily => 'brin/box_inclusion_ops', amproclefttype => 'box',
1312  amprocrighttype => 'box', amprocnum => '11', amproc => 'bound_box' },
1313{ amprocfamily => 'brin/box_inclusion_ops', amproclefttype => 'box',
1314  amprocrighttype => 'box', amprocnum => '13', amproc => 'box_contain' },
1315
1316]
1317