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