Improve descriptions of some pg_stat_checkpoints functions in pg_proc.dat.
[pgsql.git] / src / include / catalog / pg_proc.dat
blob8876bebde07d36f8de0a1f41af01f51501d8ba7d
1 #----------------------------------------------------------------------
3 # pg_proc.dat
4 # Initial contents of the pg_proc system catalog.
6 # Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
7 # Portions Copyright (c) 1994, Regents of the University of California
9 # src/include/catalog/pg_proc.dat
11 #----------------------------------------------------------------------
15 # Note: every entry in pg_proc.dat is expected to have a 'descr' comment,
16 # except for functions that implement pg_operator.dat operators and don't
17 # have a good reason to be called directly rather than via the operator.
18 # (If you do expect such a function to be used directly, you should
19 # duplicate the operator's comment.) initdb will supply suitable default
20 # comments for functions referenced by pg_operator.
22 # Try to follow the style of existing functions' comments.
23 # Some recommended conventions:
25 # "I/O" for typinput, typoutput, typreceive, typsend functions
26 # "I/O typmod" for typmodin, typmodout functions
27 # "aggregate transition function" for aggtransfn functions, unless
28 # they are reasonably useful in their own right
29 # "aggregate final function" for aggfinalfn functions (likewise)
30 # "convert srctypename to desttypename" for cast functions
31 # "less-equal-greater" for B-tree comparison functions
33 # Note: pronargs is computed when this file is read, so it does not need
34 # to be specified in entries here. See AddDefaultValues() in Catalog.pm.
36 # Once upon a time these entries were ordered by OID. Lately it's often
37 # been the custom to insert new entries adjacent to related older entries.
38 # Try to do one or the other though, don't just insert entries at random.
40 # OIDS 1 - 99
42 { oid => '1242', descr => 'I/O',
43 proname => 'boolin', prorettype => 'bool', proargtypes => 'cstring',
44 prosrc => 'boolin' },
45 { oid => '1243', descr => 'I/O',
46 proname => 'boolout', prorettype => 'cstring', proargtypes => 'bool',
47 prosrc => 'boolout' },
48 { oid => '1244', descr => 'I/O',
49 proname => 'byteain', prorettype => 'bytea', proargtypes => 'cstring',
50 prosrc => 'byteain' },
51 { oid => '31', descr => 'I/O',
52 proname => 'byteaout', prorettype => 'cstring', proargtypes => 'bytea',
53 prosrc => 'byteaout' },
54 { oid => '1245', descr => 'I/O',
55 proname => 'charin', prorettype => 'char', proargtypes => 'cstring',
56 prosrc => 'charin' },
57 { oid => '33', descr => 'I/O',
58 proname => 'charout', prorettype => 'cstring', proargtypes => 'char',
59 prosrc => 'charout' },
60 { oid => '34', descr => 'I/O',
61 proname => 'namein', prorettype => 'name', proargtypes => 'cstring',
62 prosrc => 'namein' },
63 { oid => '35', descr => 'I/O',
64 proname => 'nameout', prorettype => 'cstring', proargtypes => 'name',
65 prosrc => 'nameout' },
66 { oid => '38', descr => 'I/O',
67 proname => 'int2in', prorettype => 'int2', proargtypes => 'cstring',
68 prosrc => 'int2in' },
69 { oid => '39', descr => 'I/O',
70 proname => 'int2out', prorettype => 'cstring', proargtypes => 'int2',
71 prosrc => 'int2out' },
72 { oid => '40', descr => 'I/O',
73 proname => 'int2vectorin', prorettype => 'int2vector',
74 proargtypes => 'cstring', prosrc => 'int2vectorin' },
75 { oid => '41', descr => 'I/O',
76 proname => 'int2vectorout', prorettype => 'cstring',
77 proargtypes => 'int2vector', prosrc => 'int2vectorout' },
78 { oid => '42', descr => 'I/O',
79 proname => 'int4in', prorettype => 'int4', proargtypes => 'cstring',
80 prosrc => 'int4in' },
81 { oid => '43', descr => 'I/O',
82 proname => 'int4out', prorettype => 'cstring', proargtypes => 'int4',
83 prosrc => 'int4out' },
84 { oid => '44', descr => 'I/O',
85 proname => 'regprocin', provolatile => 's', prorettype => 'regproc',
86 proargtypes => 'cstring', prosrc => 'regprocin' },
87 { oid => '45', descr => 'I/O',
88 proname => 'regprocout', provolatile => 's', prorettype => 'cstring',
89 proargtypes => 'regproc', prosrc => 'regprocout' },
90 { oid => '3494', descr => 'convert proname to regproc',
91 proname => 'to_regproc', provolatile => 's', prorettype => 'regproc',
92 proargtypes => 'text', prosrc => 'to_regproc' },
93 { oid => '3479', descr => 'convert proname to regprocedure',
94 proname => 'to_regprocedure', provolatile => 's',
95 prorettype => 'regprocedure', proargtypes => 'text',
96 prosrc => 'to_regprocedure' },
97 { oid => '46', descr => 'I/O',
98 proname => 'textin', prorettype => 'text', proargtypes => 'cstring',
99 prosrc => 'textin' },
100 { oid => '47', descr => 'I/O',
101 proname => 'textout', prorettype => 'cstring', proargtypes => 'text',
102 prosrc => 'textout' },
103 { oid => '48', descr => 'I/O',
104 proname => 'tidin', prorettype => 'tid', proargtypes => 'cstring',
105 prosrc => 'tidin' },
106 { oid => '49', descr => 'I/O',
107 proname => 'tidout', prorettype => 'cstring', proargtypes => 'tid',
108 prosrc => 'tidout' },
109 { oid => '50', descr => 'I/O',
110 proname => 'xidin', prorettype => 'xid', proargtypes => 'cstring',
111 prosrc => 'xidin' },
112 { oid => '51', descr => 'I/O',
113 proname => 'xidout', prorettype => 'cstring', proargtypes => 'xid',
114 prosrc => 'xidout' },
115 { oid => '5070', descr => 'I/O',
116 proname => 'xid8in', prorettype => 'xid8', proargtypes => 'cstring',
117 prosrc => 'xid8in' },
118 { oid => '5081', descr => 'I/O',
119 proname => 'xid8out', prorettype => 'cstring', proargtypes => 'xid8',
120 prosrc => 'xid8out' },
121 { oid => '5082', descr => 'I/O',
122 proname => 'xid8recv', prorettype => 'xid8', proargtypes => 'internal',
123 prosrc => 'xid8recv' },
124 { oid => '5083', descr => 'I/O',
125 proname => 'xid8send', prorettype => 'bytea', proargtypes => 'xid8',
126 prosrc => 'xid8send' },
127 { oid => '52', descr => 'I/O',
128 proname => 'cidin', prorettype => 'cid', proargtypes => 'cstring',
129 prosrc => 'cidin' },
130 { oid => '53', descr => 'I/O',
131 proname => 'cidout', prorettype => 'cstring', proargtypes => 'cid',
132 prosrc => 'cidout' },
133 { oid => '54', descr => 'I/O',
134 proname => 'oidvectorin', prorettype => 'oidvector', proargtypes => 'cstring',
135 prosrc => 'oidvectorin' },
136 { oid => '55', descr => 'I/O',
137 proname => 'oidvectorout', prorettype => 'cstring',
138 proargtypes => 'oidvector', prosrc => 'oidvectorout' },
139 { oid => '56',
140 proname => 'boollt', proleakproof => 't', prorettype => 'bool',
141 proargtypes => 'bool bool', prosrc => 'boollt' },
142 { oid => '57',
143 proname => 'boolgt', proleakproof => 't', prorettype => 'bool',
144 proargtypes => 'bool bool', prosrc => 'boolgt' },
145 { oid => '60',
146 proname => 'booleq', proleakproof => 't', prorettype => 'bool',
147 proargtypes => 'bool bool', prosrc => 'booleq' },
148 { oid => '61',
149 proname => 'chareq', proleakproof => 't', prorettype => 'bool',
150 proargtypes => 'char char', prosrc => 'chareq' },
151 { oid => '62',
152 proname => 'nameeq', proleakproof => 't', prorettype => 'bool',
153 proargtypes => 'name name', prosrc => 'nameeq' },
154 { oid => '63',
155 proname => 'int2eq', proleakproof => 't', prorettype => 'bool',
156 proargtypes => 'int2 int2', prosrc => 'int2eq' },
157 { oid => '64',
158 proname => 'int2lt', proleakproof => 't', prorettype => 'bool',
159 proargtypes => 'int2 int2', prosrc => 'int2lt' },
160 { oid => '65',
161 proname => 'int4eq', proleakproof => 't', prorettype => 'bool',
162 proargtypes => 'int4 int4', prosrc => 'int4eq' },
163 { oid => '66',
164 proname => 'int4lt', proleakproof => 't', prorettype => 'bool',
165 proargtypes => 'int4 int4', prosrc => 'int4lt' },
166 { oid => '67',
167 proname => 'texteq', proleakproof => 't', prorettype => 'bool',
168 proargtypes => 'text text', prosrc => 'texteq' },
169 { oid => '3696',
170 proname => 'starts_with', prosupport => 'text_starts_with_support',
171 proleakproof => 't', prorettype => 'bool', proargtypes => 'text text',
172 prosrc => 'text_starts_with' },
173 { oid => '6242', descr => 'planner support for text_starts_with',
174 proname => 'text_starts_with_support', prorettype => 'internal',
175 proargtypes => 'internal', prosrc => 'text_starts_with_support' },
176 { oid => '68',
177 proname => 'xideq', proleakproof => 't', prorettype => 'bool',
178 proargtypes => 'xid xid', prosrc => 'xideq' },
179 { oid => '3308',
180 proname => 'xidneq', proleakproof => 't', prorettype => 'bool',
181 proargtypes => 'xid xid', prosrc => 'xidneq' },
182 { oid => '5084',
183 proname => 'xid8eq', proleakproof => 't', prorettype => 'bool',
184 proargtypes => 'xid8 xid8', prosrc => 'xid8eq' },
185 { oid => '5085',
186 proname => 'xid8ne', proleakproof => 't', prorettype => 'bool',
187 proargtypes => 'xid8 xid8', prosrc => 'xid8ne' },
188 { oid => '5034',
189 proname => 'xid8lt', proleakproof => 't', prorettype => 'bool',
190 proargtypes => 'xid8 xid8', prosrc => 'xid8lt' },
191 { oid => '5035',
192 proname => 'xid8gt', proleakproof => 't', prorettype => 'bool',
193 proargtypes => 'xid8 xid8', prosrc => 'xid8gt' },
194 { oid => '5036',
195 proname => 'xid8le', proleakproof => 't', prorettype => 'bool',
196 proargtypes => 'xid8 xid8', prosrc => 'xid8le' },
197 { oid => '5037',
198 proname => 'xid8ge', proleakproof => 't', prorettype => 'bool',
199 proargtypes => 'xid8 xid8', prosrc => 'xid8ge' },
200 { oid => '5096', descr => 'less-equal-greater',
201 proname => 'xid8cmp', proleakproof => 't', prorettype => 'int4',
202 proargtypes => 'xid8 xid8', prosrc => 'xid8cmp' },
203 { oid => '5071', descr => 'convert xid8 to xid',
204 proname => 'xid', prorettype => 'xid', proargtypes => 'xid8',
205 prosrc => 'xid8toxid' },
206 { oid => '5097', descr => 'larger of two',
207 proname => 'xid8_larger', prorettype => 'xid8', proargtypes => 'xid8 xid8',
208 prosrc => 'xid8_larger' },
209 { oid => '5098', descr => 'smaller of two',
210 proname => 'xid8_smaller', prorettype => 'xid8', proargtypes => 'xid8 xid8',
211 prosrc => 'xid8_smaller' },
212 { oid => '69',
213 proname => 'cideq', proleakproof => 't', prorettype => 'bool',
214 proargtypes => 'cid cid', prosrc => 'cideq' },
215 { oid => '70',
216 proname => 'charne', proleakproof => 't', prorettype => 'bool',
217 proargtypes => 'char char', prosrc => 'charne' },
218 { oid => '1246',
219 proname => 'charlt', proleakproof => 't', prorettype => 'bool',
220 proargtypes => 'char char', prosrc => 'charlt' },
221 { oid => '72',
222 proname => 'charle', proleakproof => 't', prorettype => 'bool',
223 proargtypes => 'char char', prosrc => 'charle' },
224 { oid => '73',
225 proname => 'chargt', proleakproof => 't', prorettype => 'bool',
226 proargtypes => 'char char', prosrc => 'chargt' },
227 { oid => '74',
228 proname => 'charge', proleakproof => 't', prorettype => 'bool',
229 proargtypes => 'char char', prosrc => 'charge' },
230 { oid => '77', descr => 'convert char to int4',
231 proname => 'int4', prorettype => 'int4', proargtypes => 'char',
232 prosrc => 'chartoi4' },
233 { oid => '78', descr => 'convert int4 to char',
234 proname => 'char', prorettype => 'char', proargtypes => 'int4',
235 prosrc => 'i4tochar' },
237 { oid => '79',
238 proname => 'nameregexeq', prosupport => 'textregexeq_support',
239 prorettype => 'bool', proargtypes => 'name text', prosrc => 'nameregexeq' },
240 { oid => '1252',
241 proname => 'nameregexne', prorettype => 'bool', proargtypes => 'name text',
242 prosrc => 'nameregexne' },
243 { oid => '1254',
244 proname => 'textregexeq', prosupport => 'textregexeq_support',
245 prorettype => 'bool', proargtypes => 'text text', prosrc => 'textregexeq' },
246 { oid => '1256',
247 proname => 'textregexne', prorettype => 'bool', proargtypes => 'text text',
248 prosrc => 'textregexne' },
249 { oid => '1364', descr => 'planner support for textregexeq',
250 proname => 'textregexeq_support', prorettype => 'internal',
251 proargtypes => 'internal', prosrc => 'textregexeq_support' },
253 { oid => '1257', descr => 'length',
254 proname => 'textlen', prorettype => 'int4', proargtypes => 'text',
255 prosrc => 'textlen' },
256 { oid => '1258',
257 proname => 'textcat', prorettype => 'text', proargtypes => 'text text',
258 prosrc => 'textcat' },
260 { oid => '84',
261 proname => 'boolne', proleakproof => 't', prorettype => 'bool',
262 proargtypes => 'bool bool', prosrc => 'boolne' },
263 { oid => '89', descr => 'PostgreSQL version string',
264 proname => 'version', provolatile => 's', prorettype => 'text',
265 proargtypes => '', prosrc => 'pgsql_version' },
267 { oid => '86', descr => 'I/O',
268 proname => 'pg_ddl_command_in', prorettype => 'pg_ddl_command',
269 proargtypes => 'cstring', prosrc => 'pg_ddl_command_in' },
270 { oid => '87', descr => 'I/O',
271 proname => 'pg_ddl_command_out', prorettype => 'cstring',
272 proargtypes => 'pg_ddl_command', prosrc => 'pg_ddl_command_out' },
273 { oid => '88', descr => 'I/O',
274 proname => 'pg_ddl_command_recv', prorettype => 'pg_ddl_command',
275 proargtypes => 'internal', prosrc => 'pg_ddl_command_recv' },
276 { oid => '90', descr => 'I/O',
277 proname => 'pg_ddl_command_send', prorettype => 'bytea',
278 proargtypes => 'pg_ddl_command', prosrc => 'pg_ddl_command_send' },
280 # OIDS 100 - 199
282 { oid => '101', descr => 'restriction selectivity of = and related operators',
283 proname => 'eqsel', provolatile => 's', prorettype => 'float8',
284 proargtypes => 'internal oid internal int4', prosrc => 'eqsel' },
285 { oid => '102',
286 descr => 'restriction selectivity of <> and related operators',
287 proname => 'neqsel', provolatile => 's', prorettype => 'float8',
288 proargtypes => 'internal oid internal int4', prosrc => 'neqsel' },
289 { oid => '103',
290 descr => 'restriction selectivity of < and related operators on scalar datatypes',
291 proname => 'scalarltsel', provolatile => 's', prorettype => 'float8',
292 proargtypes => 'internal oid internal int4', prosrc => 'scalarltsel' },
293 { oid => '104',
294 descr => 'restriction selectivity of > and related operators on scalar datatypes',
295 proname => 'scalargtsel', provolatile => 's', prorettype => 'float8',
296 proargtypes => 'internal oid internal int4', prosrc => 'scalargtsel' },
297 { oid => '105', descr => 'join selectivity of = and related operators',
298 proname => 'eqjoinsel', provolatile => 's', prorettype => 'float8',
299 proargtypes => 'internal oid internal int2 internal', prosrc => 'eqjoinsel' },
300 { oid => '106', descr => 'join selectivity of <> and related operators',
301 proname => 'neqjoinsel', provolatile => 's', prorettype => 'float8',
302 proargtypes => 'internal oid internal int2 internal',
303 prosrc => 'neqjoinsel' },
304 { oid => '107',
305 descr => 'join selectivity of < and related operators on scalar datatypes',
306 proname => 'scalarltjoinsel', provolatile => 's', prorettype => 'float8',
307 proargtypes => 'internal oid internal int2 internal',
308 prosrc => 'scalarltjoinsel' },
309 { oid => '108',
310 descr => 'join selectivity of > and related operators on scalar datatypes',
311 proname => 'scalargtjoinsel', provolatile => 's', prorettype => 'float8',
312 proargtypes => 'internal oid internal int2 internal',
313 prosrc => 'scalargtjoinsel' },
315 { oid => '336',
316 descr => 'restriction selectivity of <= and related operators on scalar datatypes',
317 proname => 'scalarlesel', provolatile => 's', prorettype => 'float8',
318 proargtypes => 'internal oid internal int4', prosrc => 'scalarlesel' },
319 { oid => '337',
320 descr => 'restriction selectivity of >= and related operators on scalar datatypes',
321 proname => 'scalargesel', provolatile => 's', prorettype => 'float8',
322 proargtypes => 'internal oid internal int4', prosrc => 'scalargesel' },
323 { oid => '386',
324 descr => 'join selectivity of <= and related operators on scalar datatypes',
325 proname => 'scalarlejoinsel', provolatile => 's', prorettype => 'float8',
326 proargtypes => 'internal oid internal int2 internal',
327 prosrc => 'scalarlejoinsel' },
328 { oid => '398',
329 descr => 'join selectivity of >= and related operators on scalar datatypes',
330 proname => 'scalargejoinsel', provolatile => 's', prorettype => 'float8',
331 proargtypes => 'internal oid internal int2 internal',
332 prosrc => 'scalargejoinsel' },
334 { oid => '109', descr => 'I/O',
335 proname => 'unknownin', prorettype => 'unknown', proargtypes => 'cstring',
336 prosrc => 'unknownin' },
337 { oid => '110', descr => 'I/O',
338 proname => 'unknownout', prorettype => 'cstring', proargtypes => 'unknown',
339 prosrc => 'unknownout' },
341 { oid => '115',
342 proname => 'box_above_eq', prorettype => 'bool', proargtypes => 'box box',
343 prosrc => 'box_above_eq' },
344 { oid => '116',
345 proname => 'box_below_eq', prorettype => 'bool', proargtypes => 'box box',
346 prosrc => 'box_below_eq' },
348 { oid => '117', descr => 'I/O',
349 proname => 'point_in', prorettype => 'point', proargtypes => 'cstring',
350 prosrc => 'point_in' },
351 { oid => '118', descr => 'I/O',
352 proname => 'point_out', prorettype => 'cstring', proargtypes => 'point',
353 prosrc => 'point_out' },
354 { oid => '119', descr => 'I/O',
355 proname => 'lseg_in', prorettype => 'lseg', proargtypes => 'cstring',
356 prosrc => 'lseg_in' },
357 { oid => '120', descr => 'I/O',
358 proname => 'lseg_out', prorettype => 'cstring', proargtypes => 'lseg',
359 prosrc => 'lseg_out' },
360 { oid => '121', descr => 'I/O',
361 proname => 'path_in', prorettype => 'path', proargtypes => 'cstring',
362 prosrc => 'path_in' },
363 { oid => '122', descr => 'I/O',
364 proname => 'path_out', prorettype => 'cstring', proargtypes => 'path',
365 prosrc => 'path_out' },
366 { oid => '123', descr => 'I/O',
367 proname => 'box_in', prorettype => 'box', proargtypes => 'cstring',
368 prosrc => 'box_in' },
369 { oid => '124', descr => 'I/O',
370 proname => 'box_out', prorettype => 'cstring', proargtypes => 'box',
371 prosrc => 'box_out' },
372 { oid => '125',
373 proname => 'box_overlap', prorettype => 'bool', proargtypes => 'box box',
374 prosrc => 'box_overlap' },
375 { oid => '126',
376 proname => 'box_ge', prorettype => 'bool', proargtypes => 'box box',
377 prosrc => 'box_ge' },
378 { oid => '127',
379 proname => 'box_gt', prorettype => 'bool', proargtypes => 'box box',
380 prosrc => 'box_gt' },
381 { oid => '128',
382 proname => 'box_eq', prorettype => 'bool', proargtypes => 'box box',
383 prosrc => 'box_eq' },
384 { oid => '129',
385 proname => 'box_lt', prorettype => 'bool', proargtypes => 'box box',
386 prosrc => 'box_lt' },
387 { oid => '130',
388 proname => 'box_le', prorettype => 'bool', proargtypes => 'box box',
389 prosrc => 'box_le' },
390 { oid => '131',
391 proname => 'point_above', prorettype => 'bool', proargtypes => 'point point',
392 prosrc => 'point_above' },
393 { oid => '132',
394 proname => 'point_left', prorettype => 'bool', proargtypes => 'point point',
395 prosrc => 'point_left' },
396 { oid => '133',
397 proname => 'point_right', prorettype => 'bool', proargtypes => 'point point',
398 prosrc => 'point_right' },
399 { oid => '134',
400 proname => 'point_below', prorettype => 'bool', proargtypes => 'point point',
401 prosrc => 'point_below' },
402 { oid => '135',
403 proname => 'point_eq', prorettype => 'bool', proargtypes => 'point point',
404 prosrc => 'point_eq' },
405 { oid => '136',
406 proname => 'on_pb', prorettype => 'bool', proargtypes => 'point box',
407 prosrc => 'on_pb' },
408 { oid => '137',
409 proname => 'on_ppath', prorettype => 'bool', proargtypes => 'point path',
410 prosrc => 'on_ppath' },
411 { oid => '138',
412 proname => 'box_center', prorettype => 'point', proargtypes => 'box',
413 prosrc => 'box_center' },
414 { oid => '139',
415 descr => 'restriction selectivity for area-comparison operators',
416 proname => 'areasel', provolatile => 's', prorettype => 'float8',
417 proargtypes => 'internal oid internal int4', prosrc => 'areasel' },
418 { oid => '140', descr => 'join selectivity for area-comparison operators',
419 proname => 'areajoinsel', provolatile => 's', prorettype => 'float8',
420 proargtypes => 'internal oid internal int2 internal',
421 prosrc => 'areajoinsel' },
422 { oid => '141',
423 proname => 'int4mul', prorettype => 'int4', proargtypes => 'int4 int4',
424 prosrc => 'int4mul' },
425 { oid => '144',
426 proname => 'int4ne', proleakproof => 't', prorettype => 'bool',
427 proargtypes => 'int4 int4', prosrc => 'int4ne' },
428 { oid => '145',
429 proname => 'int2ne', proleakproof => 't', prorettype => 'bool',
430 proargtypes => 'int2 int2', prosrc => 'int2ne' },
431 { oid => '146',
432 proname => 'int2gt', proleakproof => 't', prorettype => 'bool',
433 proargtypes => 'int2 int2', prosrc => 'int2gt' },
434 { oid => '147',
435 proname => 'int4gt', proleakproof => 't', prorettype => 'bool',
436 proargtypes => 'int4 int4', prosrc => 'int4gt' },
437 { oid => '148',
438 proname => 'int2le', proleakproof => 't', prorettype => 'bool',
439 proargtypes => 'int2 int2', prosrc => 'int2le' },
440 { oid => '149',
441 proname => 'int4le', proleakproof => 't', prorettype => 'bool',
442 proargtypes => 'int4 int4', prosrc => 'int4le' },
443 { oid => '150',
444 proname => 'int4ge', proleakproof => 't', prorettype => 'bool',
445 proargtypes => 'int4 int4', prosrc => 'int4ge' },
446 { oid => '151',
447 proname => 'int2ge', proleakproof => 't', prorettype => 'bool',
448 proargtypes => 'int2 int2', prosrc => 'int2ge' },
449 { oid => '152',
450 proname => 'int2mul', prorettype => 'int2', proargtypes => 'int2 int2',
451 prosrc => 'int2mul' },
452 { oid => '153',
453 proname => 'int2div', prorettype => 'int2', proargtypes => 'int2 int2',
454 prosrc => 'int2div' },
455 { oid => '154',
456 proname => 'int4div', prorettype => 'int4', proargtypes => 'int4 int4',
457 prosrc => 'int4div' },
458 { oid => '155',
459 proname => 'int2mod', prorettype => 'int2', proargtypes => 'int2 int2',
460 prosrc => 'int2mod' },
461 { oid => '156',
462 proname => 'int4mod', prorettype => 'int4', proargtypes => 'int4 int4',
463 prosrc => 'int4mod' },
464 { oid => '157',
465 proname => 'textne', proleakproof => 't', prorettype => 'bool',
466 proargtypes => 'text text', prosrc => 'textne' },
467 { oid => '158',
468 proname => 'int24eq', proleakproof => 't', prorettype => 'bool',
469 proargtypes => 'int2 int4', prosrc => 'int24eq' },
470 { oid => '159',
471 proname => 'int42eq', proleakproof => 't', prorettype => 'bool',
472 proargtypes => 'int4 int2', prosrc => 'int42eq' },
473 { oid => '160',
474 proname => 'int24lt', proleakproof => 't', prorettype => 'bool',
475 proargtypes => 'int2 int4', prosrc => 'int24lt' },
476 { oid => '161',
477 proname => 'int42lt', proleakproof => 't', prorettype => 'bool',
478 proargtypes => 'int4 int2', prosrc => 'int42lt' },
479 { oid => '162',
480 proname => 'int24gt', proleakproof => 't', prorettype => 'bool',
481 proargtypes => 'int2 int4', prosrc => 'int24gt' },
482 { oid => '163',
483 proname => 'int42gt', proleakproof => 't', prorettype => 'bool',
484 proargtypes => 'int4 int2', prosrc => 'int42gt' },
485 { oid => '164',
486 proname => 'int24ne', proleakproof => 't', prorettype => 'bool',
487 proargtypes => 'int2 int4', prosrc => 'int24ne' },
488 { oid => '165',
489 proname => 'int42ne', proleakproof => 't', prorettype => 'bool',
490 proargtypes => 'int4 int2', prosrc => 'int42ne' },
491 { oid => '166',
492 proname => 'int24le', proleakproof => 't', prorettype => 'bool',
493 proargtypes => 'int2 int4', prosrc => 'int24le' },
494 { oid => '167',
495 proname => 'int42le', proleakproof => 't', prorettype => 'bool',
496 proargtypes => 'int4 int2', prosrc => 'int42le' },
497 { oid => '168',
498 proname => 'int24ge', proleakproof => 't', prorettype => 'bool',
499 proargtypes => 'int2 int4', prosrc => 'int24ge' },
500 { oid => '169',
501 proname => 'int42ge', proleakproof => 't', prorettype => 'bool',
502 proargtypes => 'int4 int2', prosrc => 'int42ge' },
503 { oid => '170',
504 proname => 'int24mul', prorettype => 'int4', proargtypes => 'int2 int4',
505 prosrc => 'int24mul' },
506 { oid => '171',
507 proname => 'int42mul', prorettype => 'int4', proargtypes => 'int4 int2',
508 prosrc => 'int42mul' },
509 { oid => '172',
510 proname => 'int24div', prorettype => 'int4', proargtypes => 'int2 int4',
511 prosrc => 'int24div' },
512 { oid => '173',
513 proname => 'int42div', prorettype => 'int4', proargtypes => 'int4 int2',
514 prosrc => 'int42div' },
515 { oid => '176',
516 proname => 'int2pl', prorettype => 'int2', proargtypes => 'int2 int2',
517 prosrc => 'int2pl' },
518 { oid => '177',
519 proname => 'int4pl', prorettype => 'int4', proargtypes => 'int4 int4',
520 prosrc => 'int4pl' },
521 { oid => '178',
522 proname => 'int24pl', prorettype => 'int4', proargtypes => 'int2 int4',
523 prosrc => 'int24pl' },
524 { oid => '179',
525 proname => 'int42pl', prorettype => 'int4', proargtypes => 'int4 int2',
526 prosrc => 'int42pl' },
527 { oid => '180',
528 proname => 'int2mi', prorettype => 'int2', proargtypes => 'int2 int2',
529 prosrc => 'int2mi' },
530 { oid => '181',
531 proname => 'int4mi', prorettype => 'int4', proargtypes => 'int4 int4',
532 prosrc => 'int4mi' },
533 { oid => '182',
534 proname => 'int24mi', prorettype => 'int4', proargtypes => 'int2 int4',
535 prosrc => 'int24mi' },
536 { oid => '183',
537 proname => 'int42mi', prorettype => 'int4', proargtypes => 'int4 int2',
538 prosrc => 'int42mi' },
539 { oid => '184',
540 proname => 'oideq', proleakproof => 't', prorettype => 'bool',
541 proargtypes => 'oid oid', prosrc => 'oideq' },
542 { oid => '185',
543 proname => 'oidne', proleakproof => 't', prorettype => 'bool',
544 proargtypes => 'oid oid', prosrc => 'oidne' },
545 { oid => '186',
546 proname => 'box_same', prorettype => 'bool', proargtypes => 'box box',
547 prosrc => 'box_same' },
548 { oid => '187',
549 proname => 'box_contain', prorettype => 'bool', proargtypes => 'box box',
550 prosrc => 'box_contain' },
551 { oid => '188',
552 proname => 'box_left', prorettype => 'bool', proargtypes => 'box box',
553 prosrc => 'box_left' },
554 { oid => '189',
555 proname => 'box_overleft', prorettype => 'bool', proargtypes => 'box box',
556 prosrc => 'box_overleft' },
557 { oid => '190',
558 proname => 'box_overright', prorettype => 'bool', proargtypes => 'box box',
559 prosrc => 'box_overright' },
560 { oid => '191',
561 proname => 'box_right', prorettype => 'bool', proargtypes => 'box box',
562 prosrc => 'box_right' },
563 { oid => '192',
564 proname => 'box_contained', prorettype => 'bool', proargtypes => 'box box',
565 prosrc => 'box_contained' },
566 { oid => '193',
567 proname => 'box_contain_pt', prorettype => 'bool', proargtypes => 'box point',
568 prosrc => 'box_contain_pt' },
570 { oid => '195', descr => 'I/O',
571 proname => 'pg_node_tree_in', prorettype => 'pg_node_tree',
572 proargtypes => 'cstring', prosrc => 'pg_node_tree_in' },
573 { oid => '196', descr => 'I/O',
574 proname => 'pg_node_tree_out', prorettype => 'cstring',
575 proargtypes => 'pg_node_tree', prosrc => 'pg_node_tree_out' },
576 { oid => '197', descr => 'I/O',
577 proname => 'pg_node_tree_recv', provolatile => 's',
578 prorettype => 'pg_node_tree', proargtypes => 'internal',
579 prosrc => 'pg_node_tree_recv' },
580 { oid => '198', descr => 'I/O',
581 proname => 'pg_node_tree_send', provolatile => 's', prorettype => 'bytea',
582 proargtypes => 'pg_node_tree', prosrc => 'pg_node_tree_send' },
584 # OIDS 200 - 299
586 { oid => '200', descr => 'I/O',
587 proname => 'float4in', prorettype => 'float4', proargtypes => 'cstring',
588 prosrc => 'float4in' },
589 { oid => '201', descr => 'I/O',
590 proname => 'float4out', prorettype => 'cstring', proargtypes => 'float4',
591 prosrc => 'float4out' },
592 { oid => '202',
593 proname => 'float4mul', prorettype => 'float4',
594 proargtypes => 'float4 float4', prosrc => 'float4mul' },
595 { oid => '203',
596 proname => 'float4div', prorettype => 'float4',
597 proargtypes => 'float4 float4', prosrc => 'float4div' },
598 { oid => '204',
599 proname => 'float4pl', prorettype => 'float4', proargtypes => 'float4 float4',
600 prosrc => 'float4pl' },
601 { oid => '205',
602 proname => 'float4mi', prorettype => 'float4', proargtypes => 'float4 float4',
603 prosrc => 'float4mi' },
604 { oid => '206',
605 proname => 'float4um', prorettype => 'float4', proargtypes => 'float4',
606 prosrc => 'float4um' },
607 { oid => '207',
608 proname => 'float4abs', prorettype => 'float4', proargtypes => 'float4',
609 prosrc => 'float4abs' },
610 { oid => '208', descr => 'aggregate transition function',
611 proname => 'float4_accum', prorettype => '_float8',
612 proargtypes => '_float8 float4', prosrc => 'float4_accum' },
613 { oid => '209', descr => 'larger of two',
614 proname => 'float4larger', prorettype => 'float4',
615 proargtypes => 'float4 float4', prosrc => 'float4larger' },
616 { oid => '211', descr => 'smaller of two',
617 proname => 'float4smaller', prorettype => 'float4',
618 proargtypes => 'float4 float4', prosrc => 'float4smaller' },
620 { oid => '212',
621 proname => 'int4um', prorettype => 'int4', proargtypes => 'int4',
622 prosrc => 'int4um' },
623 { oid => '213',
624 proname => 'int2um', prorettype => 'int2', proargtypes => 'int2',
625 prosrc => 'int2um' },
627 { oid => '214', descr => 'I/O',
628 proname => 'float8in', prorettype => 'float8', proargtypes => 'cstring',
629 prosrc => 'float8in' },
630 { oid => '215', descr => 'I/O',
631 proname => 'float8out', prorettype => 'cstring', proargtypes => 'float8',
632 prosrc => 'float8out' },
633 { oid => '216',
634 proname => 'float8mul', prorettype => 'float8',
635 proargtypes => 'float8 float8', prosrc => 'float8mul' },
636 { oid => '217',
637 proname => 'float8div', prorettype => 'float8',
638 proargtypes => 'float8 float8', prosrc => 'float8div' },
639 { oid => '218',
640 proname => 'float8pl', prorettype => 'float8', proargtypes => 'float8 float8',
641 prosrc => 'float8pl' },
642 { oid => '219',
643 proname => 'float8mi', prorettype => 'float8', proargtypes => 'float8 float8',
644 prosrc => 'float8mi' },
645 { oid => '220',
646 proname => 'float8um', prorettype => 'float8', proargtypes => 'float8',
647 prosrc => 'float8um' },
648 { oid => '221',
649 proname => 'float8abs', prorettype => 'float8', proargtypes => 'float8',
650 prosrc => 'float8abs' },
651 { oid => '222', descr => 'aggregate transition function',
652 proname => 'float8_accum', prorettype => '_float8',
653 proargtypes => '_float8 float8', prosrc => 'float8_accum' },
654 { oid => '276', descr => 'aggregate combine function',
655 proname => 'float8_combine', prorettype => '_float8',
656 proargtypes => '_float8 _float8', prosrc => 'float8_combine' },
657 { oid => '223', descr => 'larger of two',
658 proname => 'float8larger', prorettype => 'float8',
659 proargtypes => 'float8 float8', prosrc => 'float8larger' },
660 { oid => '224', descr => 'smaller of two',
661 proname => 'float8smaller', prorettype => 'float8',
662 proargtypes => 'float8 float8', prosrc => 'float8smaller' },
664 { oid => '225',
665 proname => 'lseg_center', prorettype => 'point', proargtypes => 'lseg',
666 prosrc => 'lseg_center' },
667 { oid => '227',
668 proname => 'poly_center', prorettype => 'point', proargtypes => 'polygon',
669 prosrc => 'poly_center' },
671 { oid => '228', descr => 'round to nearest integer',
672 proname => 'dround', prorettype => 'float8', proargtypes => 'float8',
673 prosrc => 'dround' },
674 { oid => '229', descr => 'truncate to integer',
675 proname => 'dtrunc', prorettype => 'float8', proargtypes => 'float8',
676 prosrc => 'dtrunc' },
677 { oid => '2308', descr => 'nearest integer >= value',
678 proname => 'ceil', prorettype => 'float8', proargtypes => 'float8',
679 prosrc => 'dceil' },
680 { oid => '2320', descr => 'nearest integer >= value',
681 proname => 'ceiling', prorettype => 'float8', proargtypes => 'float8',
682 prosrc => 'dceil' },
683 { oid => '2309', descr => 'nearest integer <= value',
684 proname => 'floor', prorettype => 'float8', proargtypes => 'float8',
685 prosrc => 'dfloor' },
686 { oid => '2310', descr => 'sign of value',
687 proname => 'sign', prorettype => 'float8', proargtypes => 'float8',
688 prosrc => 'dsign' },
689 { oid => '230',
690 proname => 'dsqrt', prorettype => 'float8', proargtypes => 'float8',
691 prosrc => 'dsqrt' },
692 { oid => '231',
693 proname => 'dcbrt', prorettype => 'float8', proargtypes => 'float8',
694 prosrc => 'dcbrt' },
695 { oid => '232',
696 proname => 'dpow', prorettype => 'float8', proargtypes => 'float8 float8',
697 prosrc => 'dpow' },
698 { oid => '233', descr => 'natural exponential (e^x)',
699 proname => 'dexp', prorettype => 'float8', proargtypes => 'float8',
700 prosrc => 'dexp' },
701 { oid => '234', descr => 'natural logarithm',
702 proname => 'dlog1', prorettype => 'float8', proargtypes => 'float8',
703 prosrc => 'dlog1' },
704 { oid => '235', descr => 'convert int2 to float8',
705 proname => 'float8', proleakproof => 't', prorettype => 'float8',
706 proargtypes => 'int2', prosrc => 'i2tod' },
707 { oid => '236', descr => 'convert int2 to float4',
708 proname => 'float4', proleakproof => 't', prorettype => 'float4',
709 proargtypes => 'int2', prosrc => 'i2tof' },
710 { oid => '237', descr => 'convert float8 to int2',
711 proname => 'int2', prorettype => 'int2', proargtypes => 'float8',
712 prosrc => 'dtoi2' },
713 { oid => '238', descr => 'convert float4 to int2',
714 proname => 'int2', prorettype => 'int2', proargtypes => 'float4',
715 prosrc => 'ftoi2' },
716 { oid => '239',
717 proname => 'line_distance', prorettype => 'float8',
718 proargtypes => 'line line', prosrc => 'line_distance' },
720 { oid => '240',
721 proname => 'nameeqtext', proleakproof => 't', prorettype => 'bool',
722 proargtypes => 'name text', prosrc => 'nameeqtext' },
723 { oid => '241',
724 proname => 'namelttext', proleakproof => 't', prorettype => 'bool',
725 proargtypes => 'name text', prosrc => 'namelttext' },
726 { oid => '242',
727 proname => 'nameletext', proleakproof => 't', prorettype => 'bool',
728 proargtypes => 'name text', prosrc => 'nameletext' },
729 { oid => '243',
730 proname => 'namegetext', proleakproof => 't', prorettype => 'bool',
731 proargtypes => 'name text', prosrc => 'namegetext' },
732 { oid => '244',
733 proname => 'namegttext', proleakproof => 't', prorettype => 'bool',
734 proargtypes => 'name text', prosrc => 'namegttext' },
735 { oid => '245',
736 proname => 'namenetext', proleakproof => 't', prorettype => 'bool',
737 proargtypes => 'name text', prosrc => 'namenetext' },
738 { oid => '246', descr => 'less-equal-greater',
739 proname => 'btnametextcmp', proleakproof => 't', prorettype => 'int4',
740 proargtypes => 'name text', prosrc => 'btnametextcmp' },
741 { oid => '247',
742 proname => 'texteqname', proleakproof => 't', prorettype => 'bool',
743 proargtypes => 'text name', prosrc => 'texteqname' },
744 { oid => '248',
745 proname => 'textltname', proleakproof => 't', prorettype => 'bool',
746 proargtypes => 'text name', prosrc => 'textltname' },
747 { oid => '249',
748 proname => 'textlename', proleakproof => 't', prorettype => 'bool',
749 proargtypes => 'text name', prosrc => 'textlename' },
750 { oid => '250',
751 proname => 'textgename', proleakproof => 't', prorettype => 'bool',
752 proargtypes => 'text name', prosrc => 'textgename' },
753 { oid => '251',
754 proname => 'textgtname', proleakproof => 't', prorettype => 'bool',
755 proargtypes => 'text name', prosrc => 'textgtname' },
756 { oid => '252',
757 proname => 'textnename', proleakproof => 't', prorettype => 'bool',
758 proargtypes => 'text name', prosrc => 'textnename' },
759 { oid => '253', descr => 'less-equal-greater',
760 proname => 'bttextnamecmp', proleakproof => 't', prorettype => 'int4',
761 proargtypes => 'text name', prosrc => 'bttextnamecmp' },
763 { oid => '266', descr => 'concatenate name and oid',
764 proname => 'nameconcatoid', prorettype => 'name', proargtypes => 'name oid',
765 prosrc => 'nameconcatoid' },
767 { oid => '274',
768 descr => 'current date and time - increments during transactions',
769 proname => 'timeofday', provolatile => 'v', prorettype => 'text',
770 proargtypes => '', prosrc => 'timeofday' },
772 { oid => '277',
773 proname => 'inter_sl', prorettype => 'bool', proargtypes => 'lseg line',
774 prosrc => 'inter_sl' },
775 { oid => '278',
776 proname => 'inter_lb', prorettype => 'bool', proargtypes => 'line box',
777 prosrc => 'inter_lb' },
779 { oid => '279',
780 proname => 'float48mul', prorettype => 'float8',
781 proargtypes => 'float4 float8', prosrc => 'float48mul' },
782 { oid => '280',
783 proname => 'float48div', prorettype => 'float8',
784 proargtypes => 'float4 float8', prosrc => 'float48div' },
785 { oid => '281',
786 proname => 'float48pl', prorettype => 'float8',
787 proargtypes => 'float4 float8', prosrc => 'float48pl' },
788 { oid => '282',
789 proname => 'float48mi', prorettype => 'float8',
790 proargtypes => 'float4 float8', prosrc => 'float48mi' },
791 { oid => '283',
792 proname => 'float84mul', prorettype => 'float8',
793 proargtypes => 'float8 float4', prosrc => 'float84mul' },
794 { oid => '284',
795 proname => 'float84div', prorettype => 'float8',
796 proargtypes => 'float8 float4', prosrc => 'float84div' },
797 { oid => '285',
798 proname => 'float84pl', prorettype => 'float8',
799 proargtypes => 'float8 float4', prosrc => 'float84pl' },
800 { oid => '286',
801 proname => 'float84mi', prorettype => 'float8',
802 proargtypes => 'float8 float4', prosrc => 'float84mi' },
804 { oid => '287',
805 proname => 'float4eq', proleakproof => 't', prorettype => 'bool',
806 proargtypes => 'float4 float4', prosrc => 'float4eq' },
807 { oid => '288',
808 proname => 'float4ne', proleakproof => 't', prorettype => 'bool',
809 proargtypes => 'float4 float4', prosrc => 'float4ne' },
810 { oid => '289',
811 proname => 'float4lt', proleakproof => 't', prorettype => 'bool',
812 proargtypes => 'float4 float4', prosrc => 'float4lt' },
813 { oid => '290',
814 proname => 'float4le', proleakproof => 't', prorettype => 'bool',
815 proargtypes => 'float4 float4', prosrc => 'float4le' },
816 { oid => '291',
817 proname => 'float4gt', proleakproof => 't', prorettype => 'bool',
818 proargtypes => 'float4 float4', prosrc => 'float4gt' },
819 { oid => '292',
820 proname => 'float4ge', proleakproof => 't', prorettype => 'bool',
821 proargtypes => 'float4 float4', prosrc => 'float4ge' },
823 { oid => '293',
824 proname => 'float8eq', proleakproof => 't', prorettype => 'bool',
825 proargtypes => 'float8 float8', prosrc => 'float8eq' },
826 { oid => '294',
827 proname => 'float8ne', proleakproof => 't', prorettype => 'bool',
828 proargtypes => 'float8 float8', prosrc => 'float8ne' },
829 { oid => '295',
830 proname => 'float8lt', proleakproof => 't', prorettype => 'bool',
831 proargtypes => 'float8 float8', prosrc => 'float8lt' },
832 { oid => '296',
833 proname => 'float8le', proleakproof => 't', prorettype => 'bool',
834 proargtypes => 'float8 float8', prosrc => 'float8le' },
835 { oid => '297',
836 proname => 'float8gt', proleakproof => 't', prorettype => 'bool',
837 proargtypes => 'float8 float8', prosrc => 'float8gt' },
838 { oid => '298',
839 proname => 'float8ge', proleakproof => 't', prorettype => 'bool',
840 proargtypes => 'float8 float8', prosrc => 'float8ge' },
842 { oid => '299',
843 proname => 'float48eq', proleakproof => 't', prorettype => 'bool',
844 proargtypes => 'float4 float8', prosrc => 'float48eq' },
846 # OIDS 300 - 399
848 { oid => '300',
849 proname => 'float48ne', proleakproof => 't', prorettype => 'bool',
850 proargtypes => 'float4 float8', prosrc => 'float48ne' },
851 { oid => '301',
852 proname => 'float48lt', proleakproof => 't', prorettype => 'bool',
853 proargtypes => 'float4 float8', prosrc => 'float48lt' },
854 { oid => '302',
855 proname => 'float48le', proleakproof => 't', prorettype => 'bool',
856 proargtypes => 'float4 float8', prosrc => 'float48le' },
857 { oid => '303',
858 proname => 'float48gt', proleakproof => 't', prorettype => 'bool',
859 proargtypes => 'float4 float8', prosrc => 'float48gt' },
860 { oid => '304',
861 proname => 'float48ge', proleakproof => 't', prorettype => 'bool',
862 proargtypes => 'float4 float8', prosrc => 'float48ge' },
863 { oid => '305',
864 proname => 'float84eq', proleakproof => 't', prorettype => 'bool',
865 proargtypes => 'float8 float4', prosrc => 'float84eq' },
866 { oid => '306',
867 proname => 'float84ne', proleakproof => 't', prorettype => 'bool',
868 proargtypes => 'float8 float4', prosrc => 'float84ne' },
869 { oid => '307',
870 proname => 'float84lt', proleakproof => 't', prorettype => 'bool',
871 proargtypes => 'float8 float4', prosrc => 'float84lt' },
872 { oid => '308',
873 proname => 'float84le', proleakproof => 't', prorettype => 'bool',
874 proargtypes => 'float8 float4', prosrc => 'float84le' },
875 { oid => '309',
876 proname => 'float84gt', proleakproof => 't', prorettype => 'bool',
877 proargtypes => 'float8 float4', prosrc => 'float84gt' },
878 { oid => '310',
879 proname => 'float84ge', proleakproof => 't', prorettype => 'bool',
880 proargtypes => 'float8 float4', prosrc => 'float84ge' },
881 { oid => '320', descr => 'bucket number of operand in equal-width histogram',
882 proname => 'width_bucket', prorettype => 'int4',
883 proargtypes => 'float8 float8 float8 int4', prosrc => 'width_bucket_float8' },
885 { oid => '311', descr => 'convert float4 to float8',
886 proname => 'float8', proleakproof => 't', prorettype => 'float8',
887 proargtypes => 'float4', prosrc => 'ftod' },
888 { oid => '312', descr => 'convert float8 to float4',
889 proname => 'float4', prorettype => 'float4', proargtypes => 'float8',
890 prosrc => 'dtof' },
891 { oid => '313', descr => 'convert int2 to int4',
892 proname => 'int4', proleakproof => 't', prorettype => 'int4',
893 proargtypes => 'int2', prosrc => 'i2toi4' },
894 { oid => '314', descr => 'convert int4 to int2',
895 proname => 'int2', prorettype => 'int2', proargtypes => 'int4',
896 prosrc => 'i4toi2' },
897 { oid => '316', descr => 'convert int4 to float8',
898 proname => 'float8', proleakproof => 't', prorettype => 'float8',
899 proargtypes => 'int4', prosrc => 'i4tod' },
900 { oid => '317', descr => 'convert float8 to int4',
901 proname => 'int4', prorettype => 'int4', proargtypes => 'float8',
902 prosrc => 'dtoi4' },
903 { oid => '318', descr => 'convert int4 to float4',
904 proname => 'float4', proleakproof => 't', prorettype => 'float4',
905 proargtypes => 'int4', prosrc => 'i4tof' },
906 { oid => '319', descr => 'convert float4 to int4',
907 proname => 'int4', prorettype => 'int4', proargtypes => 'float4',
908 prosrc => 'ftoi4' },
910 # Table access method handlers
911 { oid => '3', descr => 'row-oriented heap table access method handler',
912 proname => 'heap_tableam_handler', provolatile => 'v',
913 prorettype => 'table_am_handler', proargtypes => 'internal',
914 prosrc => 'heap_tableam_handler' },
916 # Index access method handlers
917 { oid => '330', descr => 'btree index access method handler',
918 proname => 'bthandler', provolatile => 'v', prorettype => 'index_am_handler',
919 proargtypes => 'internal', prosrc => 'bthandler' },
920 { oid => '331', descr => 'hash index access method handler',
921 proname => 'hashhandler', provolatile => 'v',
922 prorettype => 'index_am_handler', proargtypes => 'internal',
923 prosrc => 'hashhandler' },
924 { oid => '332', descr => 'gist index access method handler',
925 proname => 'gisthandler', provolatile => 'v',
926 prorettype => 'index_am_handler', proargtypes => 'internal',
927 prosrc => 'gisthandler' },
928 { oid => '333', descr => 'gin index access method handler',
929 proname => 'ginhandler', provolatile => 'v', prorettype => 'index_am_handler',
930 proargtypes => 'internal', prosrc => 'ginhandler' },
931 { oid => '334', descr => 'spgist index access method handler',
932 proname => 'spghandler', provolatile => 'v', prorettype => 'index_am_handler',
933 proargtypes => 'internal', prosrc => 'spghandler' },
934 { oid => '335', descr => 'brin index access method handler',
935 proname => 'brinhandler', provolatile => 'v',
936 prorettype => 'index_am_handler', proargtypes => 'internal',
937 prosrc => 'brinhandler' },
938 { oid => '3952', descr => 'brin: standalone scan new table pages',
939 proname => 'brin_summarize_new_values', provolatile => 'v',
940 proparallel => 'u', prorettype => 'int4', proargtypes => 'regclass',
941 prosrc => 'brin_summarize_new_values' },
942 { oid => '3999', descr => 'brin: standalone scan new table pages',
943 proname => 'brin_summarize_range', provolatile => 'v', proparallel => 'u',
944 prorettype => 'int4', proargtypes => 'regclass int8',
945 prosrc => 'brin_summarize_range' },
946 { oid => '4014', descr => 'brin: desummarize page range',
947 proname => 'brin_desummarize_range', provolatile => 'v', proparallel => 'u',
948 prorettype => 'void', proargtypes => 'regclass int8',
949 prosrc => 'brin_desummarize_range' },
951 { oid => '338', descr => 'validate an operator class',
952 proname => 'amvalidate', provolatile => 'v', prorettype => 'bool',
953 proargtypes => 'oid', prosrc => 'amvalidate' },
955 { oid => '636', descr => 'test property of an index access method',
956 proname => 'pg_indexam_has_property', provolatile => 's',
957 prorettype => 'bool', proargtypes => 'oid text',
958 prosrc => 'pg_indexam_has_property' },
959 { oid => '637', descr => 'test property of an index',
960 proname => 'pg_index_has_property', provolatile => 's', prorettype => 'bool',
961 proargtypes => 'regclass text', prosrc => 'pg_index_has_property' },
962 { oid => '638', descr => 'test property of an index column',
963 proname => 'pg_index_column_has_property', provolatile => 's',
964 prorettype => 'bool', proargtypes => 'regclass int4 text',
965 prosrc => 'pg_index_column_has_property' },
966 { oid => '676', descr => 'return name of given index build phase',
967 proname => 'pg_indexam_progress_phasename', prorettype => 'text',
968 proargtypes => 'oid int8', prosrc => 'pg_indexam_progress_phasename' },
970 { oid => '339',
971 proname => 'poly_same', prorettype => 'bool',
972 proargtypes => 'polygon polygon', prosrc => 'poly_same' },
973 { oid => '340',
974 proname => 'poly_contain', prorettype => 'bool',
975 proargtypes => 'polygon polygon', prosrc => 'poly_contain' },
976 { oid => '341',
977 proname => 'poly_left', prorettype => 'bool',
978 proargtypes => 'polygon polygon', prosrc => 'poly_left' },
979 { oid => '342',
980 proname => 'poly_overleft', prorettype => 'bool',
981 proargtypes => 'polygon polygon', prosrc => 'poly_overleft' },
982 { oid => '343',
983 proname => 'poly_overright', prorettype => 'bool',
984 proargtypes => 'polygon polygon', prosrc => 'poly_overright' },
985 { oid => '344',
986 proname => 'poly_right', prorettype => 'bool',
987 proargtypes => 'polygon polygon', prosrc => 'poly_right' },
988 { oid => '345',
989 proname => 'poly_contained', prorettype => 'bool',
990 proargtypes => 'polygon polygon', prosrc => 'poly_contained' },
991 { oid => '346',
992 proname => 'poly_overlap', prorettype => 'bool',
993 proargtypes => 'polygon polygon', prosrc => 'poly_overlap' },
994 { oid => '347', descr => 'I/O',
995 proname => 'poly_in', prorettype => 'polygon', proargtypes => 'cstring',
996 prosrc => 'poly_in' },
997 { oid => '348', descr => 'I/O',
998 proname => 'poly_out', prorettype => 'cstring', proargtypes => 'polygon',
999 prosrc => 'poly_out' },
1001 { oid => '350', descr => 'less-equal-greater',
1002 proname => 'btint2cmp', proleakproof => 't', prorettype => 'int4',
1003 proargtypes => 'int2 int2', prosrc => 'btint2cmp' },
1004 { oid => '3129', descr => 'sort support',
1005 proname => 'btint2sortsupport', prorettype => 'void',
1006 proargtypes => 'internal', prosrc => 'btint2sortsupport' },
1007 { oid => '351', descr => 'less-equal-greater',
1008 proname => 'btint4cmp', proleakproof => 't', prorettype => 'int4',
1009 proargtypes => 'int4 int4', prosrc => 'btint4cmp' },
1010 { oid => '3130', descr => 'sort support',
1011 proname => 'btint4sortsupport', prorettype => 'void',
1012 proargtypes => 'internal', prosrc => 'btint4sortsupport' },
1013 { oid => '842', descr => 'less-equal-greater',
1014 proname => 'btint8cmp', proleakproof => 't', prorettype => 'int4',
1015 proargtypes => 'int8 int8', prosrc => 'btint8cmp' },
1016 { oid => '3131', descr => 'sort support',
1017 proname => 'btint8sortsupport', prorettype => 'void',
1018 proargtypes => 'internal', prosrc => 'btint8sortsupport' },
1019 { oid => '354', descr => 'less-equal-greater',
1020 proname => 'btfloat4cmp', proleakproof => 't', prorettype => 'int4',
1021 proargtypes => 'float4 float4', prosrc => 'btfloat4cmp' },
1022 { oid => '3132', descr => 'sort support',
1023 proname => 'btfloat4sortsupport', prorettype => 'void',
1024 proargtypes => 'internal', prosrc => 'btfloat4sortsupport' },
1025 { oid => '355', descr => 'less-equal-greater',
1026 proname => 'btfloat8cmp', proleakproof => 't', prorettype => 'int4',
1027 proargtypes => 'float8 float8', prosrc => 'btfloat8cmp' },
1028 { oid => '3133', descr => 'sort support',
1029 proname => 'btfloat8sortsupport', prorettype => 'void',
1030 proargtypes => 'internal', prosrc => 'btfloat8sortsupport' },
1031 { oid => '356', descr => 'less-equal-greater',
1032 proname => 'btoidcmp', proleakproof => 't', prorettype => 'int4',
1033 proargtypes => 'oid oid', prosrc => 'btoidcmp' },
1034 { oid => '3134', descr => 'sort support',
1035 proname => 'btoidsortsupport', prorettype => 'void',
1036 proargtypes => 'internal', prosrc => 'btoidsortsupport' },
1037 { oid => '404', descr => 'less-equal-greater',
1038 proname => 'btoidvectorcmp', proleakproof => 't', prorettype => 'int4',
1039 proargtypes => 'oidvector oidvector', prosrc => 'btoidvectorcmp' },
1040 { oid => '358', descr => 'less-equal-greater',
1041 proname => 'btcharcmp', proleakproof => 't', prorettype => 'int4',
1042 proargtypes => 'char char', prosrc => 'btcharcmp' },
1043 { oid => '359', descr => 'less-equal-greater',
1044 proname => 'btnamecmp', proleakproof => 't', prorettype => 'int4',
1045 proargtypes => 'name name', prosrc => 'btnamecmp' },
1046 { oid => '3135', descr => 'sort support',
1047 proname => 'btnamesortsupport', prorettype => 'void',
1048 proargtypes => 'internal', prosrc => 'btnamesortsupport' },
1049 { oid => '360', descr => 'less-equal-greater',
1050 proname => 'bttextcmp', proleakproof => 't', prorettype => 'int4',
1051 proargtypes => 'text text', prosrc => 'bttextcmp' },
1052 { oid => '3255', descr => 'sort support',
1053 proname => 'bttextsortsupport', prorettype => 'void',
1054 proargtypes => 'internal', prosrc => 'bttextsortsupport' },
1055 { oid => '5050', descr => 'equal image',
1056 proname => 'btvarstrequalimage', prorettype => 'bool', proargtypes => 'oid',
1057 prosrc => 'btvarstrequalimage' },
1058 { oid => '377', descr => 'less-equal-greater',
1059 proname => 'cash_cmp', proleakproof => 't', prorettype => 'int4',
1060 proargtypes => 'money money', prosrc => 'cash_cmp' },
1061 { oid => '382', descr => 'less-equal-greater',
1062 proname => 'btarraycmp', prorettype => 'int4',
1063 proargtypes => 'anyarray anyarray', prosrc => 'btarraycmp' },
1064 { oid => '4126', descr => 'window RANGE support',
1065 proname => 'in_range', prorettype => 'bool',
1066 proargtypes => 'int8 int8 int8 bool bool', prosrc => 'in_range_int8_int8' },
1067 { oid => '4127', descr => 'window RANGE support',
1068 proname => 'in_range', prorettype => 'bool',
1069 proargtypes => 'int4 int4 int8 bool bool', prosrc => 'in_range_int4_int8' },
1070 { oid => '4128', descr => 'window RANGE support',
1071 proname => 'in_range', prorettype => 'bool',
1072 proargtypes => 'int4 int4 int4 bool bool', prosrc => 'in_range_int4_int4' },
1073 { oid => '4129', descr => 'window RANGE support',
1074 proname => 'in_range', prorettype => 'bool',
1075 proargtypes => 'int4 int4 int2 bool bool', prosrc => 'in_range_int4_int2' },
1076 { oid => '4130', descr => 'window RANGE support',
1077 proname => 'in_range', prorettype => 'bool',
1078 proargtypes => 'int2 int2 int8 bool bool', prosrc => 'in_range_int2_int8' },
1079 { oid => '4131', descr => 'window RANGE support',
1080 proname => 'in_range', prorettype => 'bool',
1081 proargtypes => 'int2 int2 int4 bool bool', prosrc => 'in_range_int2_int4' },
1082 { oid => '4132', descr => 'window RANGE support',
1083 proname => 'in_range', prorettype => 'bool',
1084 proargtypes => 'int2 int2 int2 bool bool', prosrc => 'in_range_int2_int2' },
1085 { oid => '4139', descr => 'window RANGE support',
1086 proname => 'in_range', prorettype => 'bool',
1087 proargtypes => 'float8 float8 float8 bool bool',
1088 prosrc => 'in_range_float8_float8' },
1089 { oid => '4140', descr => 'window RANGE support',
1090 proname => 'in_range', prorettype => 'bool',
1091 proargtypes => 'float4 float4 float8 bool bool',
1092 prosrc => 'in_range_float4_float8' },
1093 { oid => '4141', descr => 'window RANGE support',
1094 proname => 'in_range', prorettype => 'bool',
1095 proargtypes => 'numeric numeric numeric bool bool',
1096 prosrc => 'in_range_numeric_numeric' },
1098 { oid => '361',
1099 proname => 'lseg_distance', prorettype => 'float8',
1100 proargtypes => 'lseg lseg', prosrc => 'lseg_distance' },
1101 { oid => '362',
1102 proname => 'lseg_interpt', prorettype => 'point', proargtypes => 'lseg lseg',
1103 prosrc => 'lseg_interpt' },
1104 { oid => '363',
1105 proname => 'dist_ps', prorettype => 'float8', proargtypes => 'point lseg',
1106 prosrc => 'dist_ps' },
1107 { oid => '380',
1108 proname => 'dist_sp', prorettype => 'float8', proargtypes => 'lseg point',
1109 prosrc => 'dist_sp' },
1110 { oid => '364',
1111 proname => 'dist_pb', prorettype => 'float8', proargtypes => 'point box',
1112 prosrc => 'dist_pb' },
1113 { oid => '357',
1114 proname => 'dist_bp', prorettype => 'float8', proargtypes => 'box point',
1115 prosrc => 'dist_bp' },
1116 { oid => '365',
1117 proname => 'dist_sb', prorettype => 'float8', proargtypes => 'lseg box',
1118 prosrc => 'dist_sb' },
1119 { oid => '381',
1120 proname => 'dist_bs', prorettype => 'float8', proargtypes => 'box lseg',
1121 prosrc => 'dist_bs' },
1122 { oid => '366',
1123 proname => 'close_ps', prorettype => 'point', proargtypes => 'point lseg',
1124 prosrc => 'close_ps' },
1125 { oid => '367',
1126 proname => 'close_pb', prorettype => 'point', proargtypes => 'point box',
1127 prosrc => 'close_pb' },
1128 { oid => '368',
1129 proname => 'close_sb', prorettype => 'point', proargtypes => 'lseg box',
1130 prosrc => 'close_sb' },
1131 { oid => '369',
1132 proname => 'on_ps', prorettype => 'bool', proargtypes => 'point lseg',
1133 prosrc => 'on_ps' },
1134 { oid => '370',
1135 proname => 'path_distance', prorettype => 'float8',
1136 proargtypes => 'path path', prosrc => 'path_distance' },
1137 { oid => '371',
1138 proname => 'dist_ppath', prorettype => 'float8', proargtypes => 'point path',
1139 prosrc => 'dist_ppath' },
1140 { oid => '421',
1141 proname => 'dist_pathp', prorettype => 'float8', proargtypes => 'path point',
1142 prosrc => 'dist_pathp' },
1143 { oid => '372',
1144 proname => 'on_sb', prorettype => 'bool', proargtypes => 'lseg box',
1145 prosrc => 'on_sb' },
1146 { oid => '373',
1147 proname => 'inter_sb', prorettype => 'bool', proargtypes => 'lseg box',
1148 prosrc => 'inter_sb' },
1150 # OIDS 400 - 499
1152 { oid => '401', descr => 'convert char(n) to text',
1153 proname => 'text', prorettype => 'text', proargtypes => 'bpchar',
1154 prosrc => 'rtrim1' },
1155 { oid => '406', descr => 'convert name to text',
1156 proname => 'text', proleakproof => 't', prorettype => 'text',
1157 proargtypes => 'name', prosrc => 'name_text' },
1158 { oid => '407', descr => 'convert text to name',
1159 proname => 'name', proleakproof => 't', prorettype => 'name',
1160 proargtypes => 'text', prosrc => 'text_name' },
1161 { oid => '408', descr => 'convert name to char(n)',
1162 proname => 'bpchar', prorettype => 'bpchar', proargtypes => 'name',
1163 prosrc => 'name_bpchar' },
1164 { oid => '409', descr => 'convert char(n) to name',
1165 proname => 'name', proleakproof => 't', prorettype => 'name',
1166 proargtypes => 'bpchar', prosrc => 'bpchar_name' },
1168 { oid => '449', descr => 'hash',
1169 proname => 'hashint2', prorettype => 'int4', proargtypes => 'int2',
1170 prosrc => 'hashint2' },
1171 { oid => '441', descr => 'hash',
1172 proname => 'hashint2extended', prorettype => 'int8',
1173 proargtypes => 'int2 int8', prosrc => 'hashint2extended' },
1174 { oid => '450', descr => 'hash',
1175 proname => 'hashint4', prorettype => 'int4', proargtypes => 'int4',
1176 prosrc => 'hashint4' },
1177 { oid => '425', descr => 'hash',
1178 proname => 'hashint4extended', prorettype => 'int8',
1179 proargtypes => 'int4 int8', prosrc => 'hashint4extended' },
1180 { oid => '949', descr => 'hash',
1181 proname => 'hashint8', prorettype => 'int4', proargtypes => 'int8',
1182 prosrc => 'hashint8' },
1183 { oid => '442', descr => 'hash',
1184 proname => 'hashint8extended', prorettype => 'int8',
1185 proargtypes => 'int8 int8', prosrc => 'hashint8extended' },
1186 { oid => '451', descr => 'hash',
1187 proname => 'hashfloat4', prorettype => 'int4', proargtypes => 'float4',
1188 prosrc => 'hashfloat4' },
1189 { oid => '443', descr => 'hash',
1190 proname => 'hashfloat4extended', prorettype => 'int8',
1191 proargtypes => 'float4 int8', prosrc => 'hashfloat4extended' },
1192 { oid => '452', descr => 'hash',
1193 proname => 'hashfloat8', prorettype => 'int4', proargtypes => 'float8',
1194 prosrc => 'hashfloat8' },
1195 { oid => '444', descr => 'hash',
1196 proname => 'hashfloat8extended', prorettype => 'int8',
1197 proargtypes => 'float8 int8', prosrc => 'hashfloat8extended' },
1198 { oid => '453', descr => 'hash',
1199 proname => 'hashoid', prorettype => 'int4', proargtypes => 'oid',
1200 prosrc => 'hashoid' },
1201 { oid => '445', descr => 'hash',
1202 proname => 'hashoidextended', prorettype => 'int8', proargtypes => 'oid int8',
1203 prosrc => 'hashoidextended' },
1204 { oid => '454', descr => 'hash',
1205 proname => 'hashchar', prorettype => 'int4', proargtypes => 'char',
1206 prosrc => 'hashchar' },
1207 { oid => '446', descr => 'hash',
1208 proname => 'hashcharextended', prorettype => 'int8',
1209 proargtypes => 'char int8', prosrc => 'hashcharextended' },
1210 { oid => '455', descr => 'hash',
1211 proname => 'hashname', prorettype => 'int4', proargtypes => 'name',
1212 prosrc => 'hashname' },
1213 { oid => '447', descr => 'hash',
1214 proname => 'hashnameextended', prorettype => 'int8',
1215 proargtypes => 'name int8', prosrc => 'hashnameextended' },
1216 { oid => '400', descr => 'hash',
1217 proname => 'hashtext', prorettype => 'int4', proargtypes => 'text',
1218 prosrc => 'hashtext' },
1219 { oid => '448', descr => 'hash',
1220 proname => 'hashtextextended', prorettype => 'int8',
1221 proargtypes => 'text int8', prosrc => 'hashtextextended' },
1222 { oid => '456', descr => 'hash',
1223 proname => 'hashvarlena', prorettype => 'int4', proargtypes => 'internal',
1224 prosrc => 'hashvarlena' },
1225 { oid => '772', descr => 'hash',
1226 proname => 'hashvarlenaextended', prorettype => 'int8',
1227 proargtypes => 'internal int8', prosrc => 'hashvarlenaextended' },
1228 { oid => '9708', descr => 'hash',
1229 proname => 'hashbytea', prorettype => 'int4', proargtypes => 'bytea',
1230 prosrc => 'hashbytea' },
1231 { oid => '9709', descr => 'hash',
1232 proname => 'hashbyteaextended', prorettype => 'int8',
1233 proargtypes => 'bytea int8', prosrc => 'hashbyteaextended' },
1234 { oid => '457', descr => 'hash',
1235 proname => 'hashoidvector', prorettype => 'int4', proargtypes => 'oidvector',
1236 prosrc => 'hashoidvector' },
1237 { oid => '776', descr => 'hash',
1238 proname => 'hashoidvectorextended', prorettype => 'int8',
1239 proargtypes => 'oidvector int8', prosrc => 'hashoidvectorextended' },
1240 { oid => '329', descr => 'hash',
1241 proname => 'hash_aclitem', prorettype => 'int4', proargtypes => 'aclitem',
1242 prosrc => 'hash_aclitem' },
1243 { oid => '777', descr => 'hash',
1244 proname => 'hash_aclitem_extended', prorettype => 'int8',
1245 proargtypes => 'aclitem int8', prosrc => 'hash_aclitem_extended' },
1246 { oid => '399', descr => 'hash',
1247 proname => 'hashmacaddr', prorettype => 'int4', proargtypes => 'macaddr',
1248 prosrc => 'hashmacaddr' },
1249 { oid => '778', descr => 'hash',
1250 proname => 'hashmacaddrextended', prorettype => 'int8',
1251 proargtypes => 'macaddr int8', prosrc => 'hashmacaddrextended' },
1252 { oid => '422', descr => 'hash',
1253 proname => 'hashinet', prorettype => 'int4', proargtypes => 'inet',
1254 prosrc => 'hashinet' },
1255 { oid => '779', descr => 'hash',
1256 proname => 'hashinetextended', prorettype => 'int8',
1257 proargtypes => 'inet int8', prosrc => 'hashinetextended' },
1258 { oid => '432', descr => 'hash',
1259 proname => 'hash_numeric', prorettype => 'int4', proargtypes => 'numeric',
1260 prosrc => 'hash_numeric' },
1261 { oid => '780', descr => 'hash',
1262 proname => 'hash_numeric_extended', prorettype => 'int8',
1263 proargtypes => 'numeric int8', prosrc => 'hash_numeric_extended' },
1264 { oid => '328', descr => 'hash',
1265 proname => 'hashmacaddr8', prorettype => 'int4', proargtypes => 'macaddr8',
1266 prosrc => 'hashmacaddr8' },
1267 { oid => '781', descr => 'hash',
1268 proname => 'hashmacaddr8extended', prorettype => 'int8',
1269 proargtypes => 'macaddr8 int8', prosrc => 'hashmacaddr8extended' },
1270 { oid => '9710', descr => 'hash',
1271 proname => 'hashdate', prorettype => 'int4', proargtypes => 'date',
1272 prosrc => 'hashdate' },
1273 { oid => '9711', descr => 'hash',
1274 proname => 'hashdateextended', prorettype => 'int8',
1275 proargtypes => 'date int8', prosrc => 'hashdateextended' },
1276 { oid => '9712', descr => 'hash',
1277 proname => 'hashbool', prorettype => 'int4', proargtypes => 'bool',
1278 prosrc => 'hashbool' },
1279 { oid => '9713', descr => 'hash',
1280 proname => 'hashboolextended', prorettype => 'int8',
1281 proargtypes => 'bool int8', prosrc => 'hashboolextended' },
1282 { oid => '9714', descr => 'hash',
1283 proname => 'hashxid', prorettype => 'int4', proargtypes => 'xid',
1284 prosrc => 'hashxid' },
1285 { oid => '9715', descr => 'hash',
1286 proname => 'hashxidextended', prorettype => 'int8', proargtypes => 'xid int8',
1287 prosrc => 'hashxidextended' },
1288 { oid => '9716', descr => 'hash',
1289 proname => 'hashxid8', prorettype => 'int4', proargtypes => 'xid8',
1290 prosrc => 'hashxid8' },
1291 { oid => '9717', descr => 'hash',
1292 proname => 'hashxid8extended', prorettype => 'int8',
1293 proargtypes => 'xid8 int8', prosrc => 'hashxid8extended' },
1294 { oid => '9718', descr => 'hash',
1295 proname => 'hashcid', prorettype => 'int4', proargtypes => 'cid',
1296 prosrc => 'hashcid' },
1297 { oid => '9719', descr => 'hash',
1298 proname => 'hashcidextended', prorettype => 'int8', proargtypes => 'cid int8',
1299 prosrc => 'hashcidextended' },
1301 { oid => '438', descr => 'count the number of NULL arguments',
1302 proname => 'num_nulls', provariadic => 'any', proisstrict => 'f',
1303 prorettype => 'int4', proargtypes => 'any', proallargtypes => '{any}',
1304 proargmodes => '{v}', prosrc => 'pg_num_nulls' },
1305 { oid => '440', descr => 'count the number of non-NULL arguments',
1306 proname => 'num_nonnulls', provariadic => 'any', proisstrict => 'f',
1307 prorettype => 'int4', proargtypes => 'any', proallargtypes => '{any}',
1308 proargmodes => '{v}', prosrc => 'pg_num_nonnulls' },
1310 { oid => '458', descr => 'larger of two',
1311 proname => 'text_larger', proleakproof => 't', prorettype => 'text',
1312 proargtypes => 'text text', prosrc => 'text_larger' },
1313 { oid => '459', descr => 'smaller of two',
1314 proname => 'text_smaller', proleakproof => 't', prorettype => 'text',
1315 proargtypes => 'text text', prosrc => 'text_smaller' },
1317 { oid => '8920', descr => 'larger of two',
1318 proname => 'bytea_larger', proleakproof => 't', prorettype => 'bytea',
1319 proargtypes => 'bytea bytea', prosrc => 'bytea_larger' },
1320 { oid => '8921', descr => 'smaller of two',
1321 proname => 'bytea_smaller', proleakproof => 't', prorettype => 'bytea',
1322 proargtypes => 'bytea bytea', prosrc => 'bytea_smaller' },
1324 { oid => '460', descr => 'I/O',
1325 proname => 'int8in', prorettype => 'int8', proargtypes => 'cstring',
1326 prosrc => 'int8in' },
1327 { oid => '461', descr => 'I/O',
1328 proname => 'int8out', prorettype => 'cstring', proargtypes => 'int8',
1329 prosrc => 'int8out' },
1330 { oid => '462',
1331 proname => 'int8um', prorettype => 'int8', proargtypes => 'int8',
1332 prosrc => 'int8um' },
1333 { oid => '463',
1334 proname => 'int8pl', prorettype => 'int8', proargtypes => 'int8 int8',
1335 prosrc => 'int8pl' },
1336 { oid => '464',
1337 proname => 'int8mi', prorettype => 'int8', proargtypes => 'int8 int8',
1338 prosrc => 'int8mi' },
1339 { oid => '465',
1340 proname => 'int8mul', prorettype => 'int8', proargtypes => 'int8 int8',
1341 prosrc => 'int8mul' },
1342 { oid => '466',
1343 proname => 'int8div', prorettype => 'int8', proargtypes => 'int8 int8',
1344 prosrc => 'int8div' },
1345 { oid => '467',
1346 proname => 'int8eq', proleakproof => 't', prorettype => 'bool',
1347 proargtypes => 'int8 int8', prosrc => 'int8eq' },
1348 { oid => '468',
1349 proname => 'int8ne', proleakproof => 't', prorettype => 'bool',
1350 proargtypes => 'int8 int8', prosrc => 'int8ne' },
1351 { oid => '469',
1352 proname => 'int8lt', proleakproof => 't', prorettype => 'bool',
1353 proargtypes => 'int8 int8', prosrc => 'int8lt' },
1354 { oid => '470',
1355 proname => 'int8gt', proleakproof => 't', prorettype => 'bool',
1356 proargtypes => 'int8 int8', prosrc => 'int8gt' },
1357 { oid => '471',
1358 proname => 'int8le', proleakproof => 't', prorettype => 'bool',
1359 proargtypes => 'int8 int8', prosrc => 'int8le' },
1360 { oid => '472',
1361 proname => 'int8ge', proleakproof => 't', prorettype => 'bool',
1362 proargtypes => 'int8 int8', prosrc => 'int8ge' },
1364 { oid => '474',
1365 proname => 'int84eq', proleakproof => 't', prorettype => 'bool',
1366 proargtypes => 'int8 int4', prosrc => 'int84eq' },
1367 { oid => '475',
1368 proname => 'int84ne', proleakproof => 't', prorettype => 'bool',
1369 proargtypes => 'int8 int4', prosrc => 'int84ne' },
1370 { oid => '476',
1371 proname => 'int84lt', proleakproof => 't', prorettype => 'bool',
1372 proargtypes => 'int8 int4', prosrc => 'int84lt' },
1373 { oid => '477',
1374 proname => 'int84gt', proleakproof => 't', prorettype => 'bool',
1375 proargtypes => 'int8 int4', prosrc => 'int84gt' },
1376 { oid => '478',
1377 proname => 'int84le', proleakproof => 't', prorettype => 'bool',
1378 proargtypes => 'int8 int4', prosrc => 'int84le' },
1379 { oid => '479',
1380 proname => 'int84ge', proleakproof => 't', prorettype => 'bool',
1381 proargtypes => 'int8 int4', prosrc => 'int84ge' },
1383 { oid => '480', descr => 'convert int8 to int4',
1384 proname => 'int4', prorettype => 'int4', proargtypes => 'int8',
1385 prosrc => 'int84' },
1386 { oid => '481', descr => 'convert int4 to int8',
1387 proname => 'int8', proleakproof => 't', prorettype => 'int8',
1388 proargtypes => 'int4', prosrc => 'int48' },
1389 { oid => '482', descr => 'convert int8 to float8',
1390 proname => 'float8', proleakproof => 't', prorettype => 'float8',
1391 proargtypes => 'int8', prosrc => 'i8tod' },
1392 { oid => '483', descr => 'convert float8 to int8',
1393 proname => 'int8', prorettype => 'int8', proargtypes => 'float8',
1394 prosrc => 'dtoi8' },
1396 # OIDS 500 - 599
1398 # OIDS 600 - 699
1400 { oid => '626', descr => 'hash',
1401 proname => 'hash_array', prorettype => 'int4', proargtypes => 'anyarray',
1402 prosrc => 'hash_array' },
1403 { oid => '782', descr => 'hash',
1404 proname => 'hash_array_extended', prorettype => 'int8',
1405 proargtypes => 'anyarray int8', prosrc => 'hash_array_extended' },
1407 { oid => '652', descr => 'convert int8 to float4',
1408 proname => 'float4', proleakproof => 't', prorettype => 'float4',
1409 proargtypes => 'int8', prosrc => 'i8tof' },
1410 { oid => '653', descr => 'convert float4 to int8',
1411 proname => 'int8', prorettype => 'int8', proargtypes => 'float4',
1412 prosrc => 'ftoi8' },
1414 { oid => '714', descr => 'convert int8 to int2',
1415 proname => 'int2', prorettype => 'int2', proargtypes => 'int8',
1416 prosrc => 'int82' },
1417 { oid => '754', descr => 'convert int2 to int8',
1418 proname => 'int8', proleakproof => 't', prorettype => 'int8',
1419 proargtypes => 'int2', prosrc => 'int28' },
1421 { oid => '655',
1422 proname => 'namelt', proleakproof => 't', prorettype => 'bool',
1423 proargtypes => 'name name', prosrc => 'namelt' },
1424 { oid => '656',
1425 proname => 'namele', proleakproof => 't', prorettype => 'bool',
1426 proargtypes => 'name name', prosrc => 'namele' },
1427 { oid => '657',
1428 proname => 'namegt', proleakproof => 't', prorettype => 'bool',
1429 proargtypes => 'name name', prosrc => 'namegt' },
1430 { oid => '658',
1431 proname => 'namege', proleakproof => 't', prorettype => 'bool',
1432 proargtypes => 'name name', prosrc => 'namege' },
1433 { oid => '659',
1434 proname => 'namene', proleakproof => 't', prorettype => 'bool',
1435 proargtypes => 'name name', prosrc => 'namene' },
1437 { oid => '668', descr => 'adjust char() to typmod length',
1438 proname => 'bpchar', prorettype => 'bpchar',
1439 proargtypes => 'bpchar int4 bool', prosrc => 'bpchar' },
1440 { oid => '3097', descr => 'planner support for varchar length coercion',
1441 proname => 'varchar_support', prorettype => 'internal',
1442 proargtypes => 'internal', prosrc => 'varchar_support' },
1443 { oid => '669', descr => 'adjust varchar() to typmod length',
1444 proname => 'varchar', prosupport => 'varchar_support',
1445 prorettype => 'varchar', proargtypes => 'varchar int4 bool',
1446 prosrc => 'varchar' },
1448 { oid => '619',
1449 proname => 'oidvectorne', proleakproof => 't', prorettype => 'bool',
1450 proargtypes => 'oidvector oidvector', prosrc => 'oidvectorne' },
1451 { oid => '677',
1452 proname => 'oidvectorlt', proleakproof => 't', prorettype => 'bool',
1453 proargtypes => 'oidvector oidvector', prosrc => 'oidvectorlt' },
1454 { oid => '678',
1455 proname => 'oidvectorle', proleakproof => 't', prorettype => 'bool',
1456 proargtypes => 'oidvector oidvector', prosrc => 'oidvectorle' },
1457 { oid => '679',
1458 proname => 'oidvectoreq', proleakproof => 't', prorettype => 'bool',
1459 proargtypes => 'oidvector oidvector', prosrc => 'oidvectoreq' },
1460 { oid => '680',
1461 proname => 'oidvectorge', proleakproof => 't', prorettype => 'bool',
1462 proargtypes => 'oidvector oidvector', prosrc => 'oidvectorge' },
1463 { oid => '681',
1464 proname => 'oidvectorgt', proleakproof => 't', prorettype => 'bool',
1465 proargtypes => 'oidvector oidvector', prosrc => 'oidvectorgt' },
1467 # OIDS 700 - 799
1468 { oid => '710', descr => 'deprecated, use current_user instead',
1469 proname => 'getpgusername', provolatile => 's', prorettype => 'name',
1470 proargtypes => '', prosrc => 'current_user' },
1471 { oid => '716',
1472 proname => 'oidlt', proleakproof => 't', prorettype => 'bool',
1473 proargtypes => 'oid oid', prosrc => 'oidlt' },
1474 { oid => '717',
1475 proname => 'oidle', proleakproof => 't', prorettype => 'bool',
1476 proargtypes => 'oid oid', prosrc => 'oidle' },
1478 { oid => '720', descr => 'octet length',
1479 proname => 'octet_length', prorettype => 'int4', proargtypes => 'bytea',
1480 prosrc => 'byteaoctetlen' },
1481 { oid => '721', descr => 'get byte',
1482 proname => 'get_byte', prorettype => 'int4', proargtypes => 'bytea int4',
1483 prosrc => 'byteaGetByte' },
1484 { oid => '722', descr => 'set byte',
1485 proname => 'set_byte', prorettype => 'bytea',
1486 proargtypes => 'bytea int4 int4', prosrc => 'byteaSetByte' },
1487 { oid => '723', descr => 'get bit',
1488 proname => 'get_bit', prorettype => 'int4', proargtypes => 'bytea int8',
1489 prosrc => 'byteaGetBit' },
1490 { oid => '724', descr => 'set bit',
1491 proname => 'set_bit', prorettype => 'bytea', proargtypes => 'bytea int8 int4',
1492 prosrc => 'byteaSetBit' },
1493 { oid => '749', descr => 'substitute portion of string',
1494 proname => 'overlay', prorettype => 'bytea',
1495 proargtypes => 'bytea bytea int4 int4', prosrc => 'byteaoverlay' },
1496 { oid => '752', descr => 'substitute portion of string',
1497 proname => 'overlay', prorettype => 'bytea',
1498 proargtypes => 'bytea bytea int4', prosrc => 'byteaoverlay_no_len' },
1499 { oid => '6163', descr => 'number of set bits',
1500 proname => 'bit_count', prorettype => 'int8', proargtypes => 'bytea',
1501 prosrc => 'bytea_bit_count' },
1503 { oid => '725',
1504 proname => 'dist_pl', prorettype => 'float8', proargtypes => 'point line',
1505 prosrc => 'dist_pl' },
1506 { oid => '702',
1507 proname => 'dist_lp', prorettype => 'float8', proargtypes => 'line point',
1508 prosrc => 'dist_lp' },
1509 { oid => '727',
1510 proname => 'dist_sl', prorettype => 'float8', proargtypes => 'lseg line',
1511 prosrc => 'dist_sl' },
1512 { oid => '704',
1513 proname => 'dist_ls', prorettype => 'float8', proargtypes => 'line lseg',
1514 prosrc => 'dist_ls' },
1516 { oid => '728',
1517 proname => 'dist_cpoly', prorettype => 'float8',
1518 proargtypes => 'circle polygon', prosrc => 'dist_cpoly' },
1519 { oid => '785',
1520 proname => 'dist_polyc', prorettype => 'float8',
1521 proargtypes => 'polygon circle', prosrc => 'dist_polyc' },
1522 { oid => '729',
1523 proname => 'poly_distance', prorettype => 'float8',
1524 proargtypes => 'polygon polygon', prosrc => 'poly_distance' },
1525 { oid => '3275',
1526 proname => 'dist_ppoly', prorettype => 'float8',
1527 proargtypes => 'point polygon', prosrc => 'dist_ppoly' },
1528 { oid => '3292',
1529 proname => 'dist_polyp', prorettype => 'float8',
1530 proargtypes => 'polygon point', prosrc => 'dist_polyp' },
1531 { oid => '3290',
1532 proname => 'dist_cpoint', prorettype => 'float8',
1533 proargtypes => 'circle point', prosrc => 'dist_cpoint' },
1535 { oid => '740',
1536 proname => 'text_lt', proleakproof => 't', prorettype => 'bool',
1537 proargtypes => 'text text', prosrc => 'text_lt' },
1538 { oid => '741',
1539 proname => 'text_le', proleakproof => 't', prorettype => 'bool',
1540 proargtypes => 'text text', prosrc => 'text_le' },
1541 { oid => '742',
1542 proname => 'text_gt', proleakproof => 't', prorettype => 'bool',
1543 proargtypes => 'text text', prosrc => 'text_gt' },
1544 { oid => '743',
1545 proname => 'text_ge', proleakproof => 't', prorettype => 'bool',
1546 proargtypes => 'text text', prosrc => 'text_ge' },
1548 { oid => '745', descr => 'current user name',
1549 proname => 'current_user', provolatile => 's', prorettype => 'name',
1550 proargtypes => '', prosrc => 'current_user' },
1551 { oid => '746', descr => 'session user name',
1552 proname => 'session_user', provolatile => 's', prorettype => 'name',
1553 proargtypes => '', prosrc => 'session_user' },
1554 { oid => '6311', descr => 'system user name',
1555 proname => 'system_user', provolatile => 's', prorettype => 'text',
1556 proargtypes => '', prosrc => 'system_user' },
1558 { oid => '744',
1559 proname => 'array_eq', prorettype => 'bool',
1560 proargtypes => 'anyarray anyarray', prosrc => 'array_eq' },
1561 { oid => '390',
1562 proname => 'array_ne', prorettype => 'bool',
1563 proargtypes => 'anyarray anyarray', prosrc => 'array_ne' },
1564 { oid => '391',
1565 proname => 'array_lt', prorettype => 'bool',
1566 proargtypes => 'anyarray anyarray', prosrc => 'array_lt' },
1567 { oid => '392',
1568 proname => 'array_gt', prorettype => 'bool',
1569 proargtypes => 'anyarray anyarray', prosrc => 'array_gt' },
1570 { oid => '393',
1571 proname => 'array_le', prorettype => 'bool',
1572 proargtypes => 'anyarray anyarray', prosrc => 'array_le' },
1573 { oid => '396',
1574 proname => 'array_ge', prorettype => 'bool',
1575 proargtypes => 'anyarray anyarray', prosrc => 'array_ge' },
1576 { oid => '747', descr => 'array dimensions',
1577 proname => 'array_dims', prorettype => 'text', proargtypes => 'anyarray',
1578 prosrc => 'array_dims' },
1579 { oid => '748', descr => 'number of array dimensions',
1580 proname => 'array_ndims', prorettype => 'int4', proargtypes => 'anyarray',
1581 prosrc => 'array_ndims' },
1582 { oid => '750', descr => 'I/O',
1583 proname => 'array_in', provolatile => 's', prorettype => 'anyarray',
1584 proargtypes => 'cstring oid int4', prosrc => 'array_in' },
1585 { oid => '751', descr => 'I/O',
1586 proname => 'array_out', provolatile => 's', prorettype => 'cstring',
1587 proargtypes => 'anyarray', prosrc => 'array_out' },
1588 { oid => '2091', descr => 'array lower dimension',
1589 proname => 'array_lower', prorettype => 'int4',
1590 proargtypes => 'anyarray int4', prosrc => 'array_lower' },
1591 { oid => '2092', descr => 'array upper dimension',
1592 proname => 'array_upper', prorettype => 'int4',
1593 proargtypes => 'anyarray int4', prosrc => 'array_upper' },
1594 { oid => '2176', descr => 'array length',
1595 proname => 'array_length', prorettype => 'int4',
1596 proargtypes => 'anyarray int4', prosrc => 'array_length' },
1597 { oid => '3179', descr => 'array cardinality',
1598 proname => 'cardinality', prorettype => 'int4', proargtypes => 'anyarray',
1599 prosrc => 'array_cardinality' },
1600 { oid => '378', descr => 'append element onto end of array',
1601 proname => 'array_append', proisstrict => 'f',
1602 prorettype => 'anycompatiblearray',
1603 proargtypes => 'anycompatiblearray anycompatible', prosrc => 'array_append' },
1604 { oid => '379', descr => 'prepend element onto front of array',
1605 proname => 'array_prepend', proisstrict => 'f',
1606 prorettype => 'anycompatiblearray',
1607 proargtypes => 'anycompatible anycompatiblearray',
1608 prosrc => 'array_prepend' },
1609 { oid => '383',
1610 proname => 'array_cat', proisstrict => 'f',
1611 prorettype => 'anycompatiblearray',
1612 proargtypes => 'anycompatiblearray anycompatiblearray',
1613 prosrc => 'array_cat' },
1614 { oid => '394', descr => 'split delimited text',
1615 proname => 'string_to_array', proisstrict => 'f', prorettype => '_text',
1616 proargtypes => 'text text', prosrc => 'text_to_array' },
1617 { oid => '376', descr => 'split delimited text, with null string',
1618 proname => 'string_to_array', proisstrict => 'f', prorettype => '_text',
1619 proargtypes => 'text text text', prosrc => 'text_to_array_null' },
1620 { oid => '6160', descr => 'split delimited text',
1621 proname => 'string_to_table', prorows => '1000', proisstrict => 'f',
1622 proretset => 't', prorettype => 'text', proargtypes => 'text text',
1623 prosrc => 'text_to_table' },
1624 { oid => '6161', descr => 'split delimited text, with null string',
1625 proname => 'string_to_table', prorows => '1000', proisstrict => 'f',
1626 proretset => 't', prorettype => 'text', proargtypes => 'text text text',
1627 prosrc => 'text_to_table_null' },
1628 { oid => '395',
1629 descr => 'concatenate array elements, using delimiter, into text',
1630 proname => 'array_to_string', provolatile => 's', prorettype => 'text',
1631 proargtypes => 'anyarray text', prosrc => 'array_to_text' },
1632 { oid => '384',
1633 descr => 'concatenate array elements, using delimiter and null string, into text',
1634 proname => 'array_to_string', proisstrict => 'f', provolatile => 's',
1635 prorettype => 'text', proargtypes => 'anyarray text text',
1636 prosrc => 'array_to_text_null' },
1637 { oid => '515', descr => 'larger of two',
1638 proname => 'array_larger', prorettype => 'anyarray',
1639 proargtypes => 'anyarray anyarray', prosrc => 'array_larger' },
1640 { oid => '516', descr => 'smaller of two',
1641 proname => 'array_smaller', prorettype => 'anyarray',
1642 proargtypes => 'anyarray anyarray', prosrc => 'array_smaller' },
1643 { oid => '3277', descr => 'returns an offset of value in array',
1644 proname => 'array_position', proisstrict => 'f', prorettype => 'int4',
1645 proargtypes => 'anycompatiblearray anycompatible',
1646 prosrc => 'array_position' },
1647 { oid => '3278',
1648 descr => 'returns an offset of value in array with start index',
1649 proname => 'array_position', proisstrict => 'f', prorettype => 'int4',
1650 proargtypes => 'anycompatiblearray anycompatible int4',
1651 prosrc => 'array_position_start' },
1652 { oid => '3279',
1653 descr => 'returns an array of offsets of some value in array',
1654 proname => 'array_positions', proisstrict => 'f', prorettype => '_int4',
1655 proargtypes => 'anycompatiblearray anycompatible',
1656 prosrc => 'array_positions' },
1657 { oid => '1191', descr => 'array subscripts generator',
1658 proname => 'generate_subscripts', prorows => '1000', proretset => 't',
1659 prorettype => 'int4', proargtypes => 'anyarray int4 bool',
1660 prosrc => 'generate_subscripts' },
1661 { oid => '1192', descr => 'array subscripts generator',
1662 proname => 'generate_subscripts', prorows => '1000', proretset => 't',
1663 prorettype => 'int4', proargtypes => 'anyarray int4',
1664 prosrc => 'generate_subscripts_nodir' },
1665 { oid => '1193', descr => 'array constructor with value',
1666 proname => 'array_fill', proisstrict => 'f', prorettype => 'anyarray',
1667 proargtypes => 'anyelement _int4', prosrc => 'array_fill' },
1668 { oid => '1286', descr => 'array constructor with value',
1669 proname => 'array_fill', proisstrict => 'f', prorettype => 'anyarray',
1670 proargtypes => 'anyelement _int4 _int4',
1671 prosrc => 'array_fill_with_lower_bounds' },
1672 { oid => '2331', descr => 'expand array to set of rows',
1673 proname => 'unnest', prorows => '100', prosupport => 'array_unnest_support',
1674 proretset => 't', prorettype => 'anyelement', proargtypes => 'anyarray',
1675 prosrc => 'array_unnest' },
1676 { oid => '3996', descr => 'planner support for array_unnest',
1677 proname => 'array_unnest_support', prorettype => 'internal',
1678 proargtypes => 'internal', prosrc => 'array_unnest_support' },
1679 { oid => '3167',
1680 descr => 'remove any occurrences of an element from an array',
1681 proname => 'array_remove', proisstrict => 'f',
1682 prorettype => 'anycompatiblearray',
1683 proargtypes => 'anycompatiblearray anycompatible', prosrc => 'array_remove' },
1684 { oid => '3168', descr => 'replace any occurrences of an element in an array',
1685 proname => 'array_replace', proisstrict => 'f',
1686 prorettype => 'anycompatiblearray',
1687 proargtypes => 'anycompatiblearray anycompatible anycompatible',
1688 prosrc => 'array_replace' },
1689 { oid => '2333', descr => 'aggregate transition function',
1690 proname => 'array_agg_transfn', proisstrict => 'f', prorettype => 'internal',
1691 proargtypes => 'internal anynonarray', prosrc => 'array_agg_transfn' },
1692 { oid => '6293', descr => 'aggregate combine function',
1693 proname => 'array_agg_combine', proisstrict => 'f', prorettype => 'internal',
1694 proargtypes => 'internal internal', prosrc => 'array_agg_combine' },
1695 { oid => '6294', descr => 'aggregate serial function',
1696 proname => 'array_agg_serialize', prorettype => 'bytea',
1697 proargtypes => 'internal', prosrc => 'array_agg_serialize' },
1698 { oid => '6295', descr => 'aggregate deserial function',
1699 proname => 'array_agg_deserialize', prorettype => 'internal',
1700 proargtypes => 'bytea internal', prosrc => 'array_agg_deserialize' },
1701 { oid => '2334', descr => 'aggregate final function',
1702 proname => 'array_agg_finalfn', proisstrict => 'f', prorettype => 'anyarray',
1703 proargtypes => 'internal anynonarray', prosrc => 'array_agg_finalfn' },
1704 { oid => '2335', descr => 'concatenate aggregate input into an array',
1705 proname => 'array_agg', prokind => 'a', proisstrict => 'f',
1706 prorettype => 'anyarray', proargtypes => 'anynonarray',
1707 prosrc => 'aggregate_dummy' },
1708 { oid => '4051', descr => 'aggregate transition function',
1709 proname => 'array_agg_array_transfn', proisstrict => 'f',
1710 prorettype => 'internal', proargtypes => 'internal anyarray',
1711 prosrc => 'array_agg_array_transfn' },
1712 { oid => '6296', descr => 'aggregate combine function',
1713 proname => 'array_agg_array_combine', proisstrict => 'f',
1714 prorettype => 'internal', proargtypes => 'internal internal',
1715 prosrc => 'array_agg_array_combine' },
1716 { oid => '6297', descr => 'aggregate serial function',
1717 proname => 'array_agg_array_serialize', prorettype => 'bytea',
1718 proargtypes => 'internal', prosrc => 'array_agg_array_serialize' },
1719 { oid => '6298', descr => 'aggregate deserial function',
1720 proname => 'array_agg_array_deserialize', prorettype => 'internal',
1721 proargtypes => 'bytea internal', prosrc => 'array_agg_array_deserialize' },
1722 { oid => '4052', descr => 'aggregate final function',
1723 proname => 'array_agg_array_finalfn', proisstrict => 'f',
1724 prorettype => 'anyarray', proargtypes => 'internal anyarray',
1725 prosrc => 'array_agg_array_finalfn' },
1726 { oid => '4053', descr => 'concatenate aggregate input into an array',
1727 proname => 'array_agg', prokind => 'a', proisstrict => 'f',
1728 prorettype => 'anyarray', proargtypes => 'anyarray',
1729 prosrc => 'aggregate_dummy' },
1730 { oid => '3218',
1731 descr => 'bucket number of operand given a sorted array of bucket lower bounds',
1732 proname => 'width_bucket', prorettype => 'int4',
1733 proargtypes => 'anycompatible anycompatiblearray',
1734 prosrc => 'width_bucket_array' },
1735 { oid => '6172', descr => 'remove last N elements of array',
1736 proname => 'trim_array', prorettype => 'anyarray',
1737 proargtypes => 'anyarray int4', prosrc => 'trim_array' },
1738 { oid => '6215', descr => 'shuffle array',
1739 proname => 'array_shuffle', provolatile => 'v', prorettype => 'anyarray',
1740 proargtypes => 'anyarray', prosrc => 'array_shuffle' },
1741 { oid => '6216', descr => 'take samples from array',
1742 proname => 'array_sample', provolatile => 'v', prorettype => 'anyarray',
1743 proargtypes => 'anyarray int4', prosrc => 'array_sample' },
1744 { oid => '3816', descr => 'array typanalyze',
1745 proname => 'array_typanalyze', provolatile => 's', prorettype => 'bool',
1746 proargtypes => 'internal', prosrc => 'array_typanalyze' },
1747 { oid => '3817',
1748 descr => 'restriction selectivity for array-containment operators',
1749 proname => 'arraycontsel', provolatile => 's', prorettype => 'float8',
1750 proargtypes => 'internal oid internal int4', prosrc => 'arraycontsel' },
1751 { oid => '3818', descr => 'join selectivity for array-containment operators',
1752 proname => 'arraycontjoinsel', provolatile => 's', prorettype => 'float8',
1753 proargtypes => 'internal oid internal int2 internal',
1754 prosrc => 'arraycontjoinsel' },
1756 { oid => '764', descr => 'large object import',
1757 proname => 'lo_import', provolatile => 'v', proparallel => 'u',
1758 prorettype => 'oid', proargtypes => 'text', prosrc => 'be_lo_import' },
1759 { oid => '767', descr => 'large object import',
1760 proname => 'lo_import', provolatile => 'v', proparallel => 'u',
1761 prorettype => 'oid', proargtypes => 'text oid',
1762 prosrc => 'be_lo_import_with_oid' },
1763 { oid => '765', descr => 'large object export',
1764 proname => 'lo_export', provolatile => 'v', proparallel => 'u',
1765 prorettype => 'int4', proargtypes => 'oid text', prosrc => 'be_lo_export' },
1767 { oid => '766', descr => 'increment',
1768 proname => 'int4inc', prorettype => 'int4', proargtypes => 'int4',
1769 prosrc => 'int4inc' },
1770 { oid => '768', descr => 'larger of two',
1771 proname => 'int4larger', prorettype => 'int4', proargtypes => 'int4 int4',
1772 prosrc => 'int4larger' },
1773 { oid => '769', descr => 'smaller of two',
1774 proname => 'int4smaller', prorettype => 'int4', proargtypes => 'int4 int4',
1775 prosrc => 'int4smaller' },
1776 { oid => '770', descr => 'larger of two',
1777 proname => 'int2larger', prorettype => 'int2', proargtypes => 'int2 int2',
1778 prosrc => 'int2larger' },
1779 { oid => '771', descr => 'smaller of two',
1780 proname => 'int2smaller', prorettype => 'int2', proargtypes => 'int2 int2',
1781 prosrc => 'int2smaller' },
1783 # OIDS 800 - 899
1785 { oid => '846',
1786 proname => 'cash_mul_flt4', prorettype => 'money',
1787 proargtypes => 'money float4', prosrc => 'cash_mul_flt4' },
1788 { oid => '847',
1789 proname => 'cash_div_flt4', prorettype => 'money',
1790 proargtypes => 'money float4', prosrc => 'cash_div_flt4' },
1791 { oid => '848',
1792 proname => 'flt4_mul_cash', prorettype => 'money',
1793 proargtypes => 'float4 money', prosrc => 'flt4_mul_cash' },
1795 { oid => '849', descr => 'position of substring',
1796 proname => 'position', prorettype => 'int4', proargtypes => 'text text',
1797 prosrc => 'textpos' },
1798 { oid => '850',
1799 proname => 'textlike', prosupport => 'textlike_support', prorettype => 'bool',
1800 proargtypes => 'text text', prosrc => 'textlike' },
1801 { oid => '1023', descr => 'planner support for textlike',
1802 proname => 'textlike_support', prorettype => 'internal',
1803 proargtypes => 'internal', prosrc => 'textlike_support' },
1804 { oid => '851',
1805 proname => 'textnlike', prorettype => 'bool', proargtypes => 'text text',
1806 prosrc => 'textnlike' },
1808 { oid => '852',
1809 proname => 'int48eq', proleakproof => 't', prorettype => 'bool',
1810 proargtypes => 'int4 int8', prosrc => 'int48eq' },
1811 { oid => '853',
1812 proname => 'int48ne', proleakproof => 't', prorettype => 'bool',
1813 proargtypes => 'int4 int8', prosrc => 'int48ne' },
1814 { oid => '854',
1815 proname => 'int48lt', proleakproof => 't', prorettype => 'bool',
1816 proargtypes => 'int4 int8', prosrc => 'int48lt' },
1817 { oid => '855',
1818 proname => 'int48gt', proleakproof => 't', prorettype => 'bool',
1819 proargtypes => 'int4 int8', prosrc => 'int48gt' },
1820 { oid => '856',
1821 proname => 'int48le', proleakproof => 't', prorettype => 'bool',
1822 proargtypes => 'int4 int8', prosrc => 'int48le' },
1823 { oid => '857',
1824 proname => 'int48ge', proleakproof => 't', prorettype => 'bool',
1825 proargtypes => 'int4 int8', prosrc => 'int48ge' },
1827 { oid => '858',
1828 proname => 'namelike', prosupport => 'textlike_support', prorettype => 'bool',
1829 proargtypes => 'name text', prosrc => 'namelike' },
1830 { oid => '859',
1831 proname => 'namenlike', prorettype => 'bool', proargtypes => 'name text',
1832 prosrc => 'namenlike' },
1834 { oid => '860', descr => 'convert char to char(n)',
1835 proname => 'bpchar', prorettype => 'bpchar', proargtypes => 'char',
1836 prosrc => 'char_bpchar' },
1838 { oid => '861', descr => 'name of the current database',
1839 proname => 'current_database', provolatile => 's', prorettype => 'name',
1840 proargtypes => '', prosrc => 'current_database' },
1841 { oid => '817', descr => 'get the currently executing query',
1842 proname => 'current_query', proisstrict => 'f', provolatile => 'v',
1843 proparallel => 'r', prorettype => 'text', proargtypes => '',
1844 prosrc => 'current_query' },
1846 { oid => '3399',
1847 proname => 'int8_mul_cash', prorettype => 'money',
1848 proargtypes => 'int8 money', prosrc => 'int8_mul_cash' },
1849 { oid => '862',
1850 proname => 'int4_mul_cash', prorettype => 'money',
1851 proargtypes => 'int4 money', prosrc => 'int4_mul_cash' },
1852 { oid => '863',
1853 proname => 'int2_mul_cash', prorettype => 'money',
1854 proargtypes => 'int2 money', prosrc => 'int2_mul_cash' },
1855 { oid => '3344',
1856 proname => 'cash_mul_int8', prorettype => 'money',
1857 proargtypes => 'money int8', prosrc => 'cash_mul_int8' },
1858 { oid => '3345',
1859 proname => 'cash_div_int8', prorettype => 'money',
1860 proargtypes => 'money int8', prosrc => 'cash_div_int8' },
1861 { oid => '864',
1862 proname => 'cash_mul_int4', prorettype => 'money',
1863 proargtypes => 'money int4', prosrc => 'cash_mul_int4' },
1864 { oid => '865',
1865 proname => 'cash_div_int4', prorettype => 'money',
1866 proargtypes => 'money int4', prosrc => 'cash_div_int4' },
1867 { oid => '866',
1868 proname => 'cash_mul_int2', prorettype => 'money',
1869 proargtypes => 'money int2', prosrc => 'cash_mul_int2' },
1870 { oid => '867',
1871 proname => 'cash_div_int2', prorettype => 'money',
1872 proargtypes => 'money int2', prosrc => 'cash_div_int2' },
1874 { oid => '886', descr => 'I/O',
1875 proname => 'cash_in', provolatile => 's', prorettype => 'money',
1876 proargtypes => 'cstring', prosrc => 'cash_in' },
1877 { oid => '887', descr => 'I/O',
1878 proname => 'cash_out', provolatile => 's', prorettype => 'cstring',
1879 proargtypes => 'money', prosrc => 'cash_out' },
1880 { oid => '888',
1881 proname => 'cash_eq', proleakproof => 't', prorettype => 'bool',
1882 proargtypes => 'money money', prosrc => 'cash_eq' },
1883 { oid => '889',
1884 proname => 'cash_ne', proleakproof => 't', prorettype => 'bool',
1885 proargtypes => 'money money', prosrc => 'cash_ne' },
1886 { oid => '890',
1887 proname => 'cash_lt', proleakproof => 't', prorettype => 'bool',
1888 proargtypes => 'money money', prosrc => 'cash_lt' },
1889 { oid => '891',
1890 proname => 'cash_le', proleakproof => 't', prorettype => 'bool',
1891 proargtypes => 'money money', prosrc => 'cash_le' },
1892 { oid => '892',
1893 proname => 'cash_gt', proleakproof => 't', prorettype => 'bool',
1894 proargtypes => 'money money', prosrc => 'cash_gt' },
1895 { oid => '893',
1896 proname => 'cash_ge', proleakproof => 't', prorettype => 'bool',
1897 proargtypes => 'money money', prosrc => 'cash_ge' },
1898 { oid => '894',
1899 proname => 'cash_pl', prorettype => 'money', proargtypes => 'money money',
1900 prosrc => 'cash_pl' },
1901 { oid => '895',
1902 proname => 'cash_mi', prorettype => 'money', proargtypes => 'money money',
1903 prosrc => 'cash_mi' },
1904 { oid => '896',
1905 proname => 'cash_mul_flt8', prorettype => 'money',
1906 proargtypes => 'money float8', prosrc => 'cash_mul_flt8' },
1907 { oid => '897',
1908 proname => 'cash_div_flt8', prorettype => 'money',
1909 proargtypes => 'money float8', prosrc => 'cash_div_flt8' },
1910 { oid => '898', descr => 'larger of two',
1911 proname => 'cashlarger', prorettype => 'money', proargtypes => 'money money',
1912 prosrc => 'cashlarger' },
1913 { oid => '899', descr => 'smaller of two',
1914 proname => 'cashsmaller', prorettype => 'money', proargtypes => 'money money',
1915 prosrc => 'cashsmaller' },
1916 { oid => '919',
1917 proname => 'flt8_mul_cash', prorettype => 'money',
1918 proargtypes => 'float8 money', prosrc => 'flt8_mul_cash' },
1919 { oid => '935', descr => 'output money amount as words',
1920 proname => 'cash_words', prorettype => 'text', proargtypes => 'money',
1921 prosrc => 'cash_words' },
1922 { oid => '3822',
1923 proname => 'cash_div_cash', prorettype => 'float8',
1924 proargtypes => 'money money', prosrc => 'cash_div_cash' },
1925 { oid => '3823', descr => 'convert money to numeric',
1926 proname => 'numeric', provolatile => 's', prorettype => 'numeric',
1927 proargtypes => 'money', prosrc => 'cash_numeric' },
1928 { oid => '3824', descr => 'convert numeric to money',
1929 proname => 'money', provolatile => 's', prorettype => 'money',
1930 proargtypes => 'numeric', prosrc => 'numeric_cash' },
1931 { oid => '3811', descr => 'convert int4 to money',
1932 proname => 'money', provolatile => 's', prorettype => 'money',
1933 proargtypes => 'int4', prosrc => 'int4_cash' },
1934 { oid => '3812', descr => 'convert int8 to money',
1935 proname => 'money', provolatile => 's', prorettype => 'money',
1936 proargtypes => 'int8', prosrc => 'int8_cash' },
1938 # OIDS 900 - 999
1940 { oid => '940', descr => 'modulus',
1941 proname => 'mod', prorettype => 'int2', proargtypes => 'int2 int2',
1942 prosrc => 'int2mod' },
1943 { oid => '941', descr => 'modulus',
1944 proname => 'mod', prorettype => 'int4', proargtypes => 'int4 int4',
1945 prosrc => 'int4mod' },
1947 { oid => '945',
1948 proname => 'int8mod', prorettype => 'int8', proargtypes => 'int8 int8',
1949 prosrc => 'int8mod' },
1950 { oid => '947', descr => 'modulus',
1951 proname => 'mod', prorettype => 'int8', proargtypes => 'int8 int8',
1952 prosrc => 'int8mod' },
1954 { oid => '5044', descr => 'greatest common divisor',
1955 proname => 'gcd', prorettype => 'int4', proargtypes => 'int4 int4',
1956 prosrc => 'int4gcd' },
1957 { oid => '5045', descr => 'greatest common divisor',
1958 proname => 'gcd', prorettype => 'int8', proargtypes => 'int8 int8',
1959 prosrc => 'int8gcd' },
1961 { oid => '5046', descr => 'least common multiple',
1962 proname => 'lcm', prorettype => 'int4', proargtypes => 'int4 int4',
1963 prosrc => 'int4lcm' },
1964 { oid => '5047', descr => 'least common multiple',
1965 proname => 'lcm', prorettype => 'int8', proargtypes => 'int8 int8',
1966 prosrc => 'int8lcm' },
1968 { oid => '944', descr => 'convert text to char',
1969 proname => 'char', prorettype => 'char', proargtypes => 'text',
1970 prosrc => 'text_char' },
1971 { oid => '946', descr => 'convert char to text',
1972 proname => 'text', prorettype => 'text', proargtypes => 'char',
1973 prosrc => 'char_text' },
1975 { oid => '952', descr => 'large object open',
1976 proname => 'lo_open', provolatile => 'v', proparallel => 'u',
1977 prorettype => 'int4', proargtypes => 'oid int4', prosrc => 'be_lo_open' },
1978 { oid => '953', descr => 'large object close',
1979 proname => 'lo_close', provolatile => 'v', proparallel => 'u',
1980 prorettype => 'int4', proargtypes => 'int4', prosrc => 'be_lo_close' },
1981 { oid => '954', descr => 'large object read',
1982 proname => 'loread', provolatile => 'v', proparallel => 'u',
1983 prorettype => 'bytea', proargtypes => 'int4 int4', prosrc => 'be_loread' },
1984 { oid => '955', descr => 'large object write',
1985 proname => 'lowrite', provolatile => 'v', proparallel => 'u',
1986 prorettype => 'int4', proargtypes => 'int4 bytea', prosrc => 'be_lowrite' },
1987 { oid => '956', descr => 'large object seek',
1988 proname => 'lo_lseek', provolatile => 'v', proparallel => 'u',
1989 prorettype => 'int4', proargtypes => 'int4 int4 int4',
1990 prosrc => 'be_lo_lseek' },
1991 { oid => '3170', descr => 'large object seek (64 bit)',
1992 proname => 'lo_lseek64', provolatile => 'v', proparallel => 'u',
1993 prorettype => 'int8', proargtypes => 'int4 int8 int4',
1994 prosrc => 'be_lo_lseek64' },
1995 { oid => '957', descr => 'large object create',
1996 proname => 'lo_creat', provolatile => 'v', proparallel => 'u',
1997 prorettype => 'oid', proargtypes => 'int4', prosrc => 'be_lo_creat' },
1998 { oid => '715', descr => 'large object create',
1999 proname => 'lo_create', provolatile => 'v', proparallel => 'u',
2000 prorettype => 'oid', proargtypes => 'oid', prosrc => 'be_lo_create' },
2001 { oid => '958', descr => 'large object position',
2002 proname => 'lo_tell', provolatile => 'v', proparallel => 'u',
2003 prorettype => 'int4', proargtypes => 'int4', prosrc => 'be_lo_tell' },
2004 { oid => '3171', descr => 'large object position (64 bit)',
2005 proname => 'lo_tell64', provolatile => 'v', proparallel => 'u',
2006 prorettype => 'int8', proargtypes => 'int4', prosrc => 'be_lo_tell64' },
2007 { oid => '1004', descr => 'truncate large object',
2008 proname => 'lo_truncate', provolatile => 'v', proparallel => 'u',
2009 prorettype => 'int4', proargtypes => 'int4 int4',
2010 prosrc => 'be_lo_truncate' },
2011 { oid => '3172', descr => 'truncate large object (64 bit)',
2012 proname => 'lo_truncate64', provolatile => 'v', proparallel => 'u',
2013 prorettype => 'int4', proargtypes => 'int4 int8',
2014 prosrc => 'be_lo_truncate64' },
2016 { oid => '3457', descr => 'create new large object with given content',
2017 proname => 'lo_from_bytea', provolatile => 'v', proparallel => 'u',
2018 prorettype => 'oid', proargtypes => 'oid bytea',
2019 prosrc => 'be_lo_from_bytea' },
2020 { oid => '3458', descr => 'read entire large object',
2021 proname => 'lo_get', provolatile => 'v', proparallel => 'u',
2022 prorettype => 'bytea', proargtypes => 'oid', prosrc => 'be_lo_get' },
2023 { oid => '3459', descr => 'read large object from offset for length',
2024 proname => 'lo_get', provolatile => 'v', proparallel => 'u',
2025 prorettype => 'bytea', proargtypes => 'oid int8 int4',
2026 prosrc => 'be_lo_get_fragment' },
2027 { oid => '3460', descr => 'write data at offset',
2028 proname => 'lo_put', provolatile => 'v', proparallel => 'u',
2029 prorettype => 'void', proargtypes => 'oid int8 bytea',
2030 prosrc => 'be_lo_put' },
2032 { oid => '959',
2033 proname => 'on_pl', prorettype => 'bool', proargtypes => 'point line',
2034 prosrc => 'on_pl' },
2035 { oid => '960',
2036 proname => 'on_sl', prorettype => 'bool', proargtypes => 'lseg line',
2037 prosrc => 'on_sl' },
2038 { oid => '961',
2039 proname => 'close_pl', prorettype => 'point', proargtypes => 'point line',
2040 prosrc => 'close_pl' },
2042 { oid => '964', descr => 'large object unlink (delete)',
2043 proname => 'lo_unlink', provolatile => 'v', proparallel => 'u',
2044 prorettype => 'int4', proargtypes => 'oid', prosrc => 'be_lo_unlink' },
2046 { oid => '973',
2047 proname => 'path_inter', prorettype => 'bool', proargtypes => 'path path',
2048 prosrc => 'path_inter' },
2049 { oid => '975', descr => 'box area',
2050 proname => 'area', prorettype => 'float8', proargtypes => 'box',
2051 prosrc => 'box_area' },
2052 { oid => '976', descr => 'box width',
2053 proname => 'width', prorettype => 'float8', proargtypes => 'box',
2054 prosrc => 'box_width' },
2055 { oid => '977', descr => 'box height',
2056 proname => 'height', prorettype => 'float8', proargtypes => 'box',
2057 prosrc => 'box_height' },
2058 { oid => '978',
2059 proname => 'box_distance', prorettype => 'float8', proargtypes => 'box box',
2060 prosrc => 'box_distance' },
2061 { oid => '979', descr => 'area of a closed path',
2062 proname => 'area', prorettype => 'float8', proargtypes => 'path',
2063 prosrc => 'path_area' },
2064 { oid => '980',
2065 proname => 'box_intersect', prorettype => 'box', proargtypes => 'box box',
2066 prosrc => 'box_intersect' },
2067 { oid => '4067', descr => 'bounding box of two boxes',
2068 proname => 'bound_box', prorettype => 'box', proargtypes => 'box box',
2069 prosrc => 'boxes_bound_box' },
2070 { oid => '981', descr => 'box diagonal',
2071 proname => 'diagonal', prorettype => 'lseg', proargtypes => 'box',
2072 prosrc => 'box_diagonal' },
2073 { oid => '982',
2074 proname => 'path_n_lt', prorettype => 'bool', proargtypes => 'path path',
2075 prosrc => 'path_n_lt' },
2076 { oid => '983',
2077 proname => 'path_n_gt', prorettype => 'bool', proargtypes => 'path path',
2078 prosrc => 'path_n_gt' },
2079 { oid => '984',
2080 proname => 'path_n_eq', prorettype => 'bool', proargtypes => 'path path',
2081 prosrc => 'path_n_eq' },
2082 { oid => '985',
2083 proname => 'path_n_le', prorettype => 'bool', proargtypes => 'path path',
2084 prosrc => 'path_n_le' },
2085 { oid => '986',
2086 proname => 'path_n_ge', prorettype => 'bool', proargtypes => 'path path',
2087 prosrc => 'path_n_ge' },
2088 { oid => '987',
2089 proname => 'path_length', prorettype => 'float8', proargtypes => 'path',
2090 prosrc => 'path_length' },
2091 { oid => '988',
2092 proname => 'point_ne', prorettype => 'bool', proargtypes => 'point point',
2093 prosrc => 'point_ne' },
2094 { oid => '989',
2095 proname => 'point_vert', prorettype => 'bool', proargtypes => 'point point',
2096 prosrc => 'point_vert' },
2097 { oid => '990',
2098 proname => 'point_horiz', prorettype => 'bool', proargtypes => 'point point',
2099 prosrc => 'point_horiz' },
2100 { oid => '991',
2101 proname => 'point_distance', prorettype => 'float8',
2102 proargtypes => 'point point', prosrc => 'point_distance' },
2103 { oid => '992', descr => 'slope between points',
2104 proname => 'slope', prorettype => 'float8', proargtypes => 'point point',
2105 prosrc => 'point_slope' },
2106 { oid => '993', descr => 'convert points to line segment',
2107 proname => 'lseg', prorettype => 'lseg', proargtypes => 'point point',
2108 prosrc => 'lseg_construct' },
2109 { oid => '994',
2110 proname => 'lseg_intersect', prorettype => 'bool', proargtypes => 'lseg lseg',
2111 prosrc => 'lseg_intersect' },
2112 { oid => '995',
2113 proname => 'lseg_parallel', prorettype => 'bool', proargtypes => 'lseg lseg',
2114 prosrc => 'lseg_parallel' },
2115 { oid => '996',
2116 proname => 'lseg_perp', prorettype => 'bool', proargtypes => 'lseg lseg',
2117 prosrc => 'lseg_perp' },
2118 { oid => '997',
2119 proname => 'lseg_vertical', prorettype => 'bool', proargtypes => 'lseg',
2120 prosrc => 'lseg_vertical' },
2121 { oid => '998',
2122 proname => 'lseg_horizontal', prorettype => 'bool', proargtypes => 'lseg',
2123 prosrc => 'lseg_horizontal' },
2124 { oid => '999',
2125 proname => 'lseg_eq', proleakproof => 't', prorettype => 'bool',
2126 proargtypes => 'lseg lseg', prosrc => 'lseg_eq' },
2128 # OIDS 1000 - 1999
2130 { oid => '1026', descr => 'adjust timestamp to new time zone',
2131 proname => 'timezone', prorettype => 'timestamp',
2132 proargtypes => 'interval timestamptz', prosrc => 'timestamptz_izone' },
2134 { oid => '1031', descr => 'I/O',
2135 proname => 'aclitemin', provolatile => 's', prorettype => 'aclitem',
2136 proargtypes => 'cstring', prosrc => 'aclitemin' },
2137 { oid => '1032', descr => 'I/O',
2138 proname => 'aclitemout', provolatile => 's', prorettype => 'cstring',
2139 proargtypes => 'aclitem', prosrc => 'aclitemout' },
2140 { oid => '1035', descr => 'add/update ACL item',
2141 proname => 'aclinsert', prorettype => '_aclitem',
2142 proargtypes => '_aclitem aclitem', prosrc => 'aclinsert' },
2143 { oid => '1036', descr => 'remove ACL item',
2144 proname => 'aclremove', prorettype => '_aclitem',
2145 proargtypes => '_aclitem aclitem', prosrc => 'aclremove' },
2146 { oid => '1037', descr => 'contains',
2147 proname => 'aclcontains', prorettype => 'bool',
2148 proargtypes => '_aclitem aclitem', prosrc => 'aclcontains' },
2149 { oid => '1062',
2150 proname => 'aclitemeq', prorettype => 'bool',
2151 proargtypes => 'aclitem aclitem', prosrc => 'aclitem_eq' },
2152 { oid => '1365', descr => 'make ACL item',
2153 proname => 'makeaclitem', prorettype => 'aclitem',
2154 proargtypes => 'oid oid text bool', prosrc => 'makeaclitem' },
2155 { oid => '3943',
2156 descr => 'show hardwired default privileges, primarily for use by the information schema',
2157 proname => 'acldefault', prorettype => '_aclitem', proargtypes => 'char oid',
2158 prosrc => 'acldefault_sql' },
2159 { oid => '1689',
2160 descr => 'convert ACL item array to table, primarily for use by information schema',
2161 proname => 'aclexplode', prorows => '10', proretset => 't',
2162 provolatile => 's', prorettype => 'record', proargtypes => '_aclitem',
2163 proallargtypes => '{_aclitem,oid,oid,text,bool}',
2164 proargmodes => '{i,o,o,o,o}',
2165 proargnames => '{acl,grantor,grantee,privilege_type,is_grantable}',
2166 prosrc => 'aclexplode' },
2167 { oid => '1044', descr => 'I/O',
2168 proname => 'bpcharin', prorettype => 'bpchar',
2169 proargtypes => 'cstring oid int4', prosrc => 'bpcharin' },
2170 { oid => '1045', descr => 'I/O',
2171 proname => 'bpcharout', prorettype => 'cstring', proargtypes => 'bpchar',
2172 prosrc => 'bpcharout' },
2173 { oid => '2913', descr => 'I/O typmod',
2174 proname => 'bpchartypmodin', prorettype => 'int4', proargtypes => '_cstring',
2175 prosrc => 'bpchartypmodin' },
2176 { oid => '2914', descr => 'I/O typmod',
2177 proname => 'bpchartypmodout', prorettype => 'cstring', proargtypes => 'int4',
2178 prosrc => 'bpchartypmodout' },
2179 { oid => '1046', descr => 'I/O',
2180 proname => 'varcharin', prorettype => 'varchar',
2181 proargtypes => 'cstring oid int4', prosrc => 'varcharin' },
2182 { oid => '1047', descr => 'I/O',
2183 proname => 'varcharout', prorettype => 'cstring', proargtypes => 'varchar',
2184 prosrc => 'varcharout' },
2185 { oid => '2915', descr => 'I/O typmod',
2186 proname => 'varchartypmodin', prorettype => 'int4', proargtypes => '_cstring',
2187 prosrc => 'varchartypmodin' },
2188 { oid => '2916', descr => 'I/O typmod',
2189 proname => 'varchartypmodout', prorettype => 'cstring', proargtypes => 'int4',
2190 prosrc => 'varchartypmodout' },
2191 { oid => '1048',
2192 proname => 'bpchareq', proleakproof => 't', prorettype => 'bool',
2193 proargtypes => 'bpchar bpchar', prosrc => 'bpchareq' },
2194 { oid => '1049',
2195 proname => 'bpcharlt', proleakproof => 't', prorettype => 'bool',
2196 proargtypes => 'bpchar bpchar', prosrc => 'bpcharlt' },
2197 { oid => '1050',
2198 proname => 'bpcharle', proleakproof => 't', prorettype => 'bool',
2199 proargtypes => 'bpchar bpchar', prosrc => 'bpcharle' },
2200 { oid => '1051',
2201 proname => 'bpchargt', proleakproof => 't', prorettype => 'bool',
2202 proargtypes => 'bpchar bpchar', prosrc => 'bpchargt' },
2203 { oid => '1052',
2204 proname => 'bpcharge', proleakproof => 't', prorettype => 'bool',
2205 proargtypes => 'bpchar bpchar', prosrc => 'bpcharge' },
2206 { oid => '1053',
2207 proname => 'bpcharne', proleakproof => 't', prorettype => 'bool',
2208 proargtypes => 'bpchar bpchar', prosrc => 'bpcharne' },
2209 { oid => '1063', descr => 'larger of two',
2210 proname => 'bpchar_larger', proleakproof => 't', prorettype => 'bpchar',
2211 proargtypes => 'bpchar bpchar', prosrc => 'bpchar_larger' },
2212 { oid => '1064', descr => 'smaller of two',
2213 proname => 'bpchar_smaller', proleakproof => 't', prorettype => 'bpchar',
2214 proargtypes => 'bpchar bpchar', prosrc => 'bpchar_smaller' },
2215 { oid => '1078', descr => 'less-equal-greater',
2216 proname => 'bpcharcmp', proleakproof => 't', prorettype => 'int4',
2217 proargtypes => 'bpchar bpchar', prosrc => 'bpcharcmp' },
2218 { oid => '3328', descr => 'sort support',
2219 proname => 'bpchar_sortsupport', prorettype => 'void',
2220 proargtypes => 'internal', prosrc => 'bpchar_sortsupport' },
2221 { oid => '1080', descr => 'hash',
2222 proname => 'hashbpchar', prorettype => 'int4', proargtypes => 'bpchar',
2223 prosrc => 'hashbpchar' },
2224 { oid => '972', descr => 'hash',
2225 proname => 'hashbpcharextended', prorettype => 'int8',
2226 proargtypes => 'bpchar int8', prosrc => 'hashbpcharextended' },
2227 { oid => '1081', descr => 'format a type oid and atttypmod to canonical SQL',
2228 proname => 'format_type', proisstrict => 'f', provolatile => 's',
2229 prorettype => 'text', proargtypes => 'oid int4', prosrc => 'format_type' },
2230 { oid => '1084', descr => 'I/O',
2231 proname => 'date_in', provolatile => 's', prorettype => 'date',
2232 proargtypes => 'cstring', prosrc => 'date_in' },
2233 { oid => '1085', descr => 'I/O',
2234 proname => 'date_out', provolatile => 's', prorettype => 'cstring',
2235 proargtypes => 'date', prosrc => 'date_out' },
2236 { oid => '1086',
2237 proname => 'date_eq', proleakproof => 't', prorettype => 'bool',
2238 proargtypes => 'date date', prosrc => 'date_eq' },
2239 { oid => '1087',
2240 proname => 'date_lt', proleakproof => 't', prorettype => 'bool',
2241 proargtypes => 'date date', prosrc => 'date_lt' },
2242 { oid => '1088',
2243 proname => 'date_le', proleakproof => 't', prorettype => 'bool',
2244 proargtypes => 'date date', prosrc => 'date_le' },
2245 { oid => '1089',
2246 proname => 'date_gt', proleakproof => 't', prorettype => 'bool',
2247 proargtypes => 'date date', prosrc => 'date_gt' },
2248 { oid => '1090',
2249 proname => 'date_ge', proleakproof => 't', prorettype => 'bool',
2250 proargtypes => 'date date', prosrc => 'date_ge' },
2251 { oid => '1091',
2252 proname => 'date_ne', proleakproof => 't', prorettype => 'bool',
2253 proargtypes => 'date date', prosrc => 'date_ne' },
2254 { oid => '1092', descr => 'less-equal-greater',
2255 proname => 'date_cmp', proleakproof => 't', prorettype => 'int4',
2256 proargtypes => 'date date', prosrc => 'date_cmp' },
2257 { oid => '3136', descr => 'sort support',
2258 proname => 'date_sortsupport', prorettype => 'void',
2259 proargtypes => 'internal', prosrc => 'date_sortsupport' },
2260 { oid => '4133', descr => 'window RANGE support',
2261 proname => 'in_range', prorettype => 'bool',
2262 proargtypes => 'date date interval bool bool',
2263 prosrc => 'in_range_date_interval' },
2265 # OIDS 1100 - 1199
2267 { oid => '1102',
2268 proname => 'time_lt', proleakproof => 't', prorettype => 'bool',
2269 proargtypes => 'time time', prosrc => 'time_lt' },
2270 { oid => '1103',
2271 proname => 'time_le', proleakproof => 't', prorettype => 'bool',
2272 proargtypes => 'time time', prosrc => 'time_le' },
2273 { oid => '1104',
2274 proname => 'time_gt', proleakproof => 't', prorettype => 'bool',
2275 proargtypes => 'time time', prosrc => 'time_gt' },
2276 { oid => '1105',
2277 proname => 'time_ge', proleakproof => 't', prorettype => 'bool',
2278 proargtypes => 'time time', prosrc => 'time_ge' },
2279 { oid => '1106',
2280 proname => 'time_ne', proleakproof => 't', prorettype => 'bool',
2281 proargtypes => 'time time', prosrc => 'time_ne' },
2282 { oid => '1107', descr => 'less-equal-greater',
2283 proname => 'time_cmp', proleakproof => 't', prorettype => 'int4',
2284 proargtypes => 'time time', prosrc => 'time_cmp' },
2285 { oid => '1138', descr => 'larger of two',
2286 proname => 'date_larger', prorettype => 'date', proargtypes => 'date date',
2287 prosrc => 'date_larger' },
2288 { oid => '1139', descr => 'smaller of two',
2289 proname => 'date_smaller', prorettype => 'date', proargtypes => 'date date',
2290 prosrc => 'date_smaller' },
2291 { oid => '1140',
2292 proname => 'date_mi', prorettype => 'int4', proargtypes => 'date date',
2293 prosrc => 'date_mi' },
2294 { oid => '1141',
2295 proname => 'date_pli', prorettype => 'date', proargtypes => 'date int4',
2296 prosrc => 'date_pli' },
2297 { oid => '1142',
2298 proname => 'date_mii', prorettype => 'date', proargtypes => 'date int4',
2299 prosrc => 'date_mii' },
2300 { oid => '1143', descr => 'I/O',
2301 proname => 'time_in', provolatile => 's', prorettype => 'time',
2302 proargtypes => 'cstring oid int4', prosrc => 'time_in' },
2303 { oid => '1144', descr => 'I/O',
2304 proname => 'time_out', prorettype => 'cstring', proargtypes => 'time',
2305 prosrc => 'time_out' },
2306 { oid => '2909', descr => 'I/O typmod',
2307 proname => 'timetypmodin', prorettype => 'int4', proargtypes => '_cstring',
2308 prosrc => 'timetypmodin' },
2309 { oid => '2910', descr => 'I/O typmod',
2310 proname => 'timetypmodout', prorettype => 'cstring', proargtypes => 'int4',
2311 prosrc => 'timetypmodout' },
2312 { oid => '1145',
2313 proname => 'time_eq', proleakproof => 't', prorettype => 'bool',
2314 proargtypes => 'time time', prosrc => 'time_eq' },
2316 { oid => '1146',
2317 proname => 'circle_add_pt', prorettype => 'circle',
2318 proargtypes => 'circle point', prosrc => 'circle_add_pt' },
2319 { oid => '1147',
2320 proname => 'circle_sub_pt', prorettype => 'circle',
2321 proargtypes => 'circle point', prosrc => 'circle_sub_pt' },
2322 { oid => '1148',
2323 proname => 'circle_mul_pt', prorettype => 'circle',
2324 proargtypes => 'circle point', prosrc => 'circle_mul_pt' },
2325 { oid => '1149',
2326 proname => 'circle_div_pt', prorettype => 'circle',
2327 proargtypes => 'circle point', prosrc => 'circle_div_pt' },
2329 { oid => '1150', descr => 'I/O',
2330 proname => 'timestamptz_in', provolatile => 's', prorettype => 'timestamptz',
2331 proargtypes => 'cstring oid int4', prosrc => 'timestamptz_in' },
2332 { oid => '1151', descr => 'I/O',
2333 proname => 'timestamptz_out', provolatile => 's', prorettype => 'cstring',
2334 proargtypes => 'timestamptz', prosrc => 'timestamptz_out' },
2335 { oid => '2907', descr => 'I/O typmod',
2336 proname => 'timestamptztypmodin', prorettype => 'int4',
2337 proargtypes => '_cstring', prosrc => 'timestamptztypmodin' },
2338 { oid => '2908', descr => 'I/O typmod',
2339 proname => 'timestamptztypmodout', prorettype => 'cstring',
2340 proargtypes => 'int4', prosrc => 'timestamptztypmodout' },
2341 { oid => '1152',
2342 proname => 'timestamptz_eq', proleakproof => 't', prorettype => 'bool',
2343 proargtypes => 'timestamptz timestamptz', prosrc => 'timestamp_eq' },
2344 { oid => '1153',
2345 proname => 'timestamptz_ne', proleakproof => 't', prorettype => 'bool',
2346 proargtypes => 'timestamptz timestamptz', prosrc => 'timestamp_ne' },
2347 { oid => '1154',
2348 proname => 'timestamptz_lt', proleakproof => 't', prorettype => 'bool',
2349 proargtypes => 'timestamptz timestamptz', prosrc => 'timestamp_lt' },
2350 { oid => '1155',
2351 proname => 'timestamptz_le', proleakproof => 't', prorettype => 'bool',
2352 proargtypes => 'timestamptz timestamptz', prosrc => 'timestamp_le' },
2353 { oid => '1156',
2354 proname => 'timestamptz_ge', proleakproof => 't', prorettype => 'bool',
2355 proargtypes => 'timestamptz timestamptz', prosrc => 'timestamp_ge' },
2356 { oid => '1157',
2357 proname => 'timestamptz_gt', proleakproof => 't', prorettype => 'bool',
2358 proargtypes => 'timestamptz timestamptz', prosrc => 'timestamp_gt' },
2359 { oid => '1158', descr => 'convert UNIX epoch to timestamptz',
2360 proname => 'to_timestamp', prorettype => 'timestamptz',
2361 proargtypes => 'float8', prosrc => 'float8_timestamptz' },
2362 { oid => '1159', descr => 'adjust timestamp to new time zone',
2363 proname => 'timezone', prorettype => 'timestamp',
2364 proargtypes => 'text timestamptz', prosrc => 'timestamptz_zone' },
2365 { oid => '6334', descr => 'adjust timestamp to local time zone',
2366 proname => 'timezone', provolatile => 's', prorettype => 'timestamp',
2367 proargtypes => 'timestamptz', prosrc => 'timestamptz_at_local' },
2369 { oid => '1160', descr => 'I/O',
2370 proname => 'interval_in', provolatile => 's', prorettype => 'interval',
2371 proargtypes => 'cstring oid int4', prosrc => 'interval_in' },
2372 { oid => '1161', descr => 'I/O',
2373 proname => 'interval_out', provolatile => 's', prorettype => 'cstring',
2374 proargtypes => 'interval', prosrc => 'interval_out' },
2375 { oid => '2903', descr => 'I/O typmod',
2376 proname => 'intervaltypmodin', prorettype => 'int4',
2377 proargtypes => '_cstring', prosrc => 'intervaltypmodin' },
2378 { oid => '2904', descr => 'I/O typmod',
2379 proname => 'intervaltypmodout', prorettype => 'cstring',
2380 proargtypes => 'int4', prosrc => 'intervaltypmodout' },
2381 { oid => '1162',
2382 proname => 'interval_eq', proleakproof => 't', prorettype => 'bool',
2383 proargtypes => 'interval interval', prosrc => 'interval_eq' },
2384 { oid => '1163',
2385 proname => 'interval_ne', proleakproof => 't', prorettype => 'bool',
2386 proargtypes => 'interval interval', prosrc => 'interval_ne' },
2387 { oid => '1164',
2388 proname => 'interval_lt', proleakproof => 't', prorettype => 'bool',
2389 proargtypes => 'interval interval', prosrc => 'interval_lt' },
2390 { oid => '1165',
2391 proname => 'interval_le', proleakproof => 't', prorettype => 'bool',
2392 proargtypes => 'interval interval', prosrc => 'interval_le' },
2393 { oid => '1166',
2394 proname => 'interval_ge', proleakproof => 't', prorettype => 'bool',
2395 proargtypes => 'interval interval', prosrc => 'interval_ge' },
2396 { oid => '1167',
2397 proname => 'interval_gt', proleakproof => 't', prorettype => 'bool',
2398 proargtypes => 'interval interval', prosrc => 'interval_gt' },
2399 { oid => '1168',
2400 proname => 'interval_um', prorettype => 'interval', proargtypes => 'interval',
2401 prosrc => 'interval_um' },
2402 { oid => '1169',
2403 proname => 'interval_pl', prorettype => 'interval',
2404 proargtypes => 'interval interval', prosrc => 'interval_pl' },
2405 { oid => '1170',
2406 proname => 'interval_mi', prorettype => 'interval',
2407 proargtypes => 'interval interval', prosrc => 'interval_mi' },
2408 { oid => '1171', descr => 'extract field from timestamp with time zone',
2409 proname => 'date_part', provolatile => 's', prorettype => 'float8',
2410 proargtypes => 'text timestamptz', prosrc => 'timestamptz_part' },
2411 { oid => '6203', descr => 'extract field from timestamp with time zone',
2412 proname => 'extract', provolatile => 's', prorettype => 'numeric',
2413 proargtypes => 'text timestamptz', prosrc => 'extract_timestamptz' },
2414 { oid => '1172', descr => 'extract field from interval',
2415 proname => 'date_part', prorettype => 'float8',
2416 proargtypes => 'text interval', prosrc => 'interval_part' },
2417 { oid => '6204', descr => 'extract field from interval',
2418 proname => 'extract', prorettype => 'numeric', proargtypes => 'text interval',
2419 prosrc => 'extract_interval' },
2420 { oid => '1174', descr => 'convert date to timestamp with time zone',
2421 proname => 'timestamptz', provolatile => 's', prorettype => 'timestamptz',
2422 proargtypes => 'date', prosrc => 'date_timestamptz' },
2423 { oid => '2711',
2424 descr => 'promote groups of 24 hours to numbers of days and promote groups of 30 days to numbers of months',
2425 proname => 'justify_interval', prorettype => 'interval',
2426 proargtypes => 'interval', prosrc => 'interval_justify_interval' },
2427 { oid => '1175', descr => 'promote groups of 24 hours to numbers of days',
2428 proname => 'justify_hours', prorettype => 'interval',
2429 proargtypes => 'interval', prosrc => 'interval_justify_hours' },
2430 { oid => '1295', descr => 'promote groups of 30 days to numbers of months',
2431 proname => 'justify_days', prorettype => 'interval',
2432 proargtypes => 'interval', prosrc => 'interval_justify_days' },
2433 { oid => '1176', descr => 'convert date and time to timestamp with time zone',
2434 proname => 'timestamptz', prolang => 'sql', provolatile => 's',
2435 prorettype => 'timestamptz', proargtypes => 'date time',
2436 prosrc => 'see system_functions.sql' },
2437 { oid => '1178', descr => 'convert timestamp with time zone to date',
2438 proname => 'date', provolatile => 's', prorettype => 'date',
2439 proargtypes => 'timestamptz', prosrc => 'timestamptz_date' },
2440 { oid => '1181',
2441 descr => 'age of a transaction ID, in transactions before current transaction',
2442 proname => 'age', provolatile => 's', proparallel => 'r',
2443 prorettype => 'int4', proargtypes => 'xid', prosrc => 'xid_age' },
2444 { oid => '3939',
2445 descr => 'age of a multi-transaction ID, in multi-transactions before current multi-transaction',
2446 proname => 'mxid_age', provolatile => 's', prorettype => 'int4',
2447 proargtypes => 'xid', prosrc => 'mxid_age' },
2449 { oid => '1188',
2450 proname => 'timestamptz_mi', prorettype => 'interval',
2451 proargtypes => 'timestamptz timestamptz', prosrc => 'timestamp_mi' },
2452 { oid => '1189',
2453 proname => 'timestamptz_pl_interval', provolatile => 's',
2454 prorettype => 'timestamptz', proargtypes => 'timestamptz interval',
2455 prosrc => 'timestamptz_pl_interval' },
2456 { oid => '6221', descr => 'add interval to timestamp with time zone',
2457 proname => 'date_add', provolatile => 's', prorettype => 'timestamptz',
2458 proargtypes => 'timestamptz interval', prosrc => 'timestamptz_pl_interval' },
2459 { oid => '6222',
2460 descr => 'add interval to timestamp with time zone in specified time zone',
2461 proname => 'date_add', prorettype => 'timestamptz',
2462 proargtypes => 'timestamptz interval text',
2463 prosrc => 'timestamptz_pl_interval_at_zone' },
2464 { oid => '1190',
2465 proname => 'timestamptz_mi_interval', provolatile => 's',
2466 prorettype => 'timestamptz', proargtypes => 'timestamptz interval',
2467 prosrc => 'timestamptz_mi_interval' },
2468 { oid => '6223', descr => 'subtract interval from timestamp with time zone',
2469 proname => 'date_subtract', provolatile => 's', prorettype => 'timestamptz',
2470 proargtypes => 'timestamptz interval', prosrc => 'timestamptz_mi_interval' },
2471 { oid => '6273',
2472 descr => 'subtract interval from timestamp with time zone in specified time zone',
2473 proname => 'date_subtract', prorettype => 'timestamptz',
2474 proargtypes => 'timestamptz interval text',
2475 prosrc => 'timestamptz_mi_interval_at_zone' },
2476 { oid => '1195', descr => 'smaller of two',
2477 proname => 'timestamptz_smaller', prorettype => 'timestamptz',
2478 proargtypes => 'timestamptz timestamptz', prosrc => 'timestamp_smaller' },
2479 { oid => '1196', descr => 'larger of two',
2480 proname => 'timestamptz_larger', prorettype => 'timestamptz',
2481 proargtypes => 'timestamptz timestamptz', prosrc => 'timestamp_larger' },
2482 { oid => '1197', descr => 'smaller of two',
2483 proname => 'interval_smaller', prorettype => 'interval',
2484 proargtypes => 'interval interval', prosrc => 'interval_smaller' },
2485 { oid => '1198', descr => 'larger of two',
2486 proname => 'interval_larger', prorettype => 'interval',
2487 proargtypes => 'interval interval', prosrc => 'interval_larger' },
2488 { oid => '1199', descr => 'date difference preserving months and years',
2489 proname => 'age', prorettype => 'interval',
2490 proargtypes => 'timestamptz timestamptz', prosrc => 'timestamptz_age' },
2492 # OIDS 1200 - 1299
2494 { oid => '3918', descr => 'planner support for interval length coercion',
2495 proname => 'interval_support', prorettype => 'internal',
2496 proargtypes => 'internal', prosrc => 'interval_support' },
2497 { oid => '1200', descr => 'adjust interval precision',
2498 proname => 'interval', prosupport => 'interval_support',
2499 prorettype => 'interval', proargtypes => 'interval int4',
2500 prosrc => 'interval_scale' },
2502 { oid => '1215', descr => 'get description for object id and catalog name',
2503 proname => 'obj_description', prolang => 'sql', procost => '100',
2504 provolatile => 's', prorettype => 'text', proargtypes => 'oid name',
2505 prosrc => 'see system_functions.sql' },
2506 { oid => '1216', descr => 'get description for table column',
2507 proname => 'col_description', prolang => 'sql', procost => '100',
2508 provolatile => 's', prorettype => 'text', proargtypes => 'oid int4',
2509 prosrc => 'see system_functions.sql' },
2510 { oid => '1993',
2511 descr => 'get description for object id and shared catalog name',
2512 proname => 'shobj_description', prolang => 'sql', procost => '100',
2513 provolatile => 's', prorettype => 'text', proargtypes => 'oid name',
2514 prosrc => 'see system_functions.sql' },
2516 { oid => '1217',
2517 descr => 'truncate timestamp with time zone to specified units',
2518 proname => 'date_trunc', provolatile => 's', prorettype => 'timestamptz',
2519 proargtypes => 'text timestamptz', prosrc => 'timestamptz_trunc' },
2520 { oid => '1284',
2521 descr => 'truncate timestamp with time zone to specified units in specified time zone',
2522 proname => 'date_trunc', prorettype => 'timestamptz',
2523 proargtypes => 'text timestamptz text', prosrc => 'timestamptz_trunc_zone' },
2524 { oid => '1218', descr => 'truncate interval to specified units',
2525 proname => 'date_trunc', prorettype => 'interval',
2526 proargtypes => 'text interval', prosrc => 'interval_trunc' },
2528 { oid => '1219', descr => 'increment',
2529 proname => 'int8inc', prorettype => 'int8', proargtypes => 'int8',
2530 prosrc => 'int8inc' },
2531 { oid => '3546', descr => 'decrement',
2532 proname => 'int8dec', prorettype => 'int8', proargtypes => 'int8',
2533 prosrc => 'int8dec' },
2534 { oid => '2804', descr => 'increment, ignores second argument',
2535 proname => 'int8inc_any', prorettype => 'int8', proargtypes => 'int8 any',
2536 prosrc => 'int8inc_any' },
2537 { oid => '3547', descr => 'decrement, ignores second argument',
2538 proname => 'int8dec_any', prorettype => 'int8', proargtypes => 'int8 any',
2539 prosrc => 'int8dec_any' },
2540 { oid => '1230',
2541 proname => 'int8abs', prorettype => 'int8', proargtypes => 'int8',
2542 prosrc => 'int8abs' },
2544 { oid => '1236', descr => 'larger of two',
2545 proname => 'int8larger', prorettype => 'int8', proargtypes => 'int8 int8',
2546 prosrc => 'int8larger' },
2547 { oid => '1237', descr => 'smaller of two',
2548 proname => 'int8smaller', prorettype => 'int8', proargtypes => 'int8 int8',
2549 prosrc => 'int8smaller' },
2551 { oid => '1238',
2552 proname => 'texticregexeq', prosupport => 'texticregexeq_support',
2553 prorettype => 'bool', proargtypes => 'text text', prosrc => 'texticregexeq' },
2554 { oid => '1024', descr => 'planner support for texticregexeq',
2555 proname => 'texticregexeq_support', prorettype => 'internal',
2556 proargtypes => 'internal', prosrc => 'texticregexeq_support' },
2557 { oid => '1239',
2558 proname => 'texticregexne', prorettype => 'bool', proargtypes => 'text text',
2559 prosrc => 'texticregexne' },
2560 { oid => '1240',
2561 proname => 'nameicregexeq', prosupport => 'texticregexeq_support',
2562 prorettype => 'bool', proargtypes => 'name text', prosrc => 'nameicregexeq' },
2563 { oid => '1241',
2564 proname => 'nameicregexne', prorettype => 'bool', proargtypes => 'name text',
2565 prosrc => 'nameicregexne' },
2567 { oid => '1251',
2568 proname => 'int4abs', prorettype => 'int4', proargtypes => 'int4',
2569 prosrc => 'int4abs' },
2570 { oid => '1253',
2571 proname => 'int2abs', prorettype => 'int2', proargtypes => 'int2',
2572 prosrc => 'int2abs' },
2574 { oid => '1271', descr => 'intervals overlap?',
2575 proname => 'overlaps', proisstrict => 'f', prorettype => 'bool',
2576 proargtypes => 'timetz timetz timetz timetz', prosrc => 'overlaps_timetz' },
2577 { oid => '1272',
2578 proname => 'datetime_pl', prorettype => 'timestamp',
2579 proargtypes => 'date time', prosrc => 'datetime_timestamp' },
2580 { oid => '1273', descr => 'extract field from time with time zone',
2581 proname => 'date_part', prorettype => 'float8', proargtypes => 'text timetz',
2582 prosrc => 'timetz_part' },
2583 { oid => '6201', descr => 'extract field from time with time zone',
2584 proname => 'extract', prorettype => 'numeric', proargtypes => 'text timetz',
2585 prosrc => 'extract_timetz' },
2586 { oid => '1274',
2587 proname => 'int84pl', prorettype => 'int8', proargtypes => 'int8 int4',
2588 prosrc => 'int84pl' },
2589 { oid => '1275',
2590 proname => 'int84mi', prorettype => 'int8', proargtypes => 'int8 int4',
2591 prosrc => 'int84mi' },
2592 { oid => '1276',
2593 proname => 'int84mul', prorettype => 'int8', proargtypes => 'int8 int4',
2594 prosrc => 'int84mul' },
2595 { oid => '1277',
2596 proname => 'int84div', prorettype => 'int8', proargtypes => 'int8 int4',
2597 prosrc => 'int84div' },
2598 { oid => '1278',
2599 proname => 'int48pl', prorettype => 'int8', proargtypes => 'int4 int8',
2600 prosrc => 'int48pl' },
2601 { oid => '1279',
2602 proname => 'int48mi', prorettype => 'int8', proargtypes => 'int4 int8',
2603 prosrc => 'int48mi' },
2604 { oid => '1280',
2605 proname => 'int48mul', prorettype => 'int8', proargtypes => 'int4 int8',
2606 prosrc => 'int48mul' },
2607 { oid => '1281',
2608 proname => 'int48div', prorettype => 'int8', proargtypes => 'int4 int8',
2609 prosrc => 'int48div' },
2611 { oid => '837',
2612 proname => 'int82pl', prorettype => 'int8', proargtypes => 'int8 int2',
2613 prosrc => 'int82pl' },
2614 { oid => '838',
2615 proname => 'int82mi', prorettype => 'int8', proargtypes => 'int8 int2',
2616 prosrc => 'int82mi' },
2617 { oid => '839',
2618 proname => 'int82mul', prorettype => 'int8', proargtypes => 'int8 int2',
2619 prosrc => 'int82mul' },
2620 { oid => '840',
2621 proname => 'int82div', prorettype => 'int8', proargtypes => 'int8 int2',
2622 prosrc => 'int82div' },
2623 { oid => '841',
2624 proname => 'int28pl', prorettype => 'int8', proargtypes => 'int2 int8',
2625 prosrc => 'int28pl' },
2626 { oid => '942',
2627 proname => 'int28mi', prorettype => 'int8', proargtypes => 'int2 int8',
2628 prosrc => 'int28mi' },
2629 { oid => '943',
2630 proname => 'int28mul', prorettype => 'int8', proargtypes => 'int2 int8',
2631 prosrc => 'int28mul' },
2632 { oid => '948',
2633 proname => 'int28div', prorettype => 'int8', proargtypes => 'int2 int8',
2634 prosrc => 'int28div' },
2636 { oid => '1287', descr => 'convert int8 to oid',
2637 proname => 'oid', prorettype => 'oid', proargtypes => 'int8',
2638 prosrc => 'i8tooid' },
2639 { oid => '1288', descr => 'convert oid to int8',
2640 proname => 'int8', proleakproof => 't', prorettype => 'int8',
2641 proargtypes => 'oid', prosrc => 'oidtoi8' },
2643 { oid => '1291',
2644 descr => 'trigger to suppress updates when new and old records match',
2645 proname => 'suppress_redundant_updates_trigger', provolatile => 'v',
2646 prorettype => 'trigger', proargtypes => '',
2647 prosrc => 'suppress_redundant_updates_trigger' },
2649 { oid => '1292',
2650 proname => 'tideq', proleakproof => 't', prorettype => 'bool',
2651 proargtypes => 'tid tid', prosrc => 'tideq' },
2652 { oid => '1294', descr => 'latest tid of a tuple',
2653 proname => 'currtid2', provolatile => 'v', proparallel => 'u',
2654 prorettype => 'tid', proargtypes => 'text tid',
2655 prosrc => 'currtid_byrelname' },
2656 { oid => '1265',
2657 proname => 'tidne', proleakproof => 't', prorettype => 'bool',
2658 proargtypes => 'tid tid', prosrc => 'tidne' },
2659 { oid => '2790',
2660 proname => 'tidgt', proleakproof => 't', prorettype => 'bool',
2661 proargtypes => 'tid tid', prosrc => 'tidgt' },
2662 { oid => '2791',
2663 proname => 'tidlt', proleakproof => 't', prorettype => 'bool',
2664 proargtypes => 'tid tid', prosrc => 'tidlt' },
2665 { oid => '2792',
2666 proname => 'tidge', proleakproof => 't', prorettype => 'bool',
2667 proargtypes => 'tid tid', prosrc => 'tidge' },
2668 { oid => '2793',
2669 proname => 'tidle', proleakproof => 't', prorettype => 'bool',
2670 proargtypes => 'tid tid', prosrc => 'tidle' },
2671 { oid => '2794', descr => 'less-equal-greater',
2672 proname => 'bttidcmp', proleakproof => 't', prorettype => 'int4',
2673 proargtypes => 'tid tid', prosrc => 'bttidcmp' },
2674 { oid => '2795', descr => 'larger of two',
2675 proname => 'tidlarger', prorettype => 'tid', proargtypes => 'tid tid',
2676 prosrc => 'tidlarger' },
2677 { oid => '2796', descr => 'smaller of two',
2678 proname => 'tidsmaller', prorettype => 'tid', proargtypes => 'tid tid',
2679 prosrc => 'tidsmaller' },
2680 { oid => '2233', descr => 'hash',
2681 proname => 'hashtid', prorettype => 'int4', proargtypes => 'tid',
2682 prosrc => 'hashtid' },
2683 { oid => '2234', descr => 'hash',
2684 proname => 'hashtidextended', prorettype => 'int8', proargtypes => 'tid int8',
2685 prosrc => 'hashtidextended' },
2687 { oid => '1296',
2688 proname => 'timedate_pl', prolang => 'sql', prorettype => 'timestamp',
2689 proargtypes => 'time date', prosrc => 'see system_functions.sql' },
2690 { oid => '1297',
2691 proname => 'datetimetz_pl', prorettype => 'timestamptz',
2692 proargtypes => 'date timetz', prosrc => 'datetimetz_timestamptz' },
2693 { oid => '1298',
2694 proname => 'timetzdate_pl', prolang => 'sql', prorettype => 'timestamptz',
2695 proargtypes => 'timetz date', prosrc => 'see system_functions.sql' },
2696 { oid => '1299', descr => 'current transaction time',
2697 proname => 'now', provolatile => 's', prorettype => 'timestamptz',
2698 proargtypes => '', prosrc => 'now' },
2699 { oid => '2647', descr => 'current transaction time',
2700 proname => 'transaction_timestamp', provolatile => 's',
2701 prorettype => 'timestamptz', proargtypes => '', prosrc => 'now' },
2702 { oid => '2648', descr => 'current statement time',
2703 proname => 'statement_timestamp', provolatile => 's',
2704 prorettype => 'timestamptz', proargtypes => '',
2705 prosrc => 'statement_timestamp' },
2706 { oid => '2649', descr => 'current clock time',
2707 proname => 'clock_timestamp', provolatile => 'v', prorettype => 'timestamptz',
2708 proargtypes => '', prosrc => 'clock_timestamp' },
2710 # OIDS 1300 - 1399
2712 { oid => '1300',
2713 descr => 'restriction selectivity for position-comparison operators',
2714 proname => 'positionsel', provolatile => 's', prorettype => 'float8',
2715 proargtypes => 'internal oid internal int4', prosrc => 'positionsel' },
2716 { oid => '1301',
2717 descr => 'join selectivity for position-comparison operators',
2718 proname => 'positionjoinsel', provolatile => 's', prorettype => 'float8',
2719 proargtypes => 'internal oid internal int2 internal',
2720 prosrc => 'positionjoinsel' },
2721 { oid => '1302',
2722 descr => 'restriction selectivity for containment comparison operators',
2723 proname => 'contsel', provolatile => 's', prorettype => 'float8',
2724 proargtypes => 'internal oid internal int4', prosrc => 'contsel' },
2725 { oid => '1303',
2726 descr => 'join selectivity for containment comparison operators',
2727 proname => 'contjoinsel', provolatile => 's', prorettype => 'float8',
2728 proargtypes => 'internal oid internal int2 internal',
2729 prosrc => 'contjoinsel' },
2731 { oid => '1304', descr => 'intervals overlap?',
2732 proname => 'overlaps', proisstrict => 'f', prorettype => 'bool',
2733 proargtypes => 'timestamptz timestamptz timestamptz timestamptz',
2734 prosrc => 'overlaps_timestamp' },
2735 { oid => '1305', descr => 'intervals overlap?',
2736 proname => 'overlaps', prolang => 'sql', proisstrict => 'f',
2737 provolatile => 's', prorettype => 'bool',
2738 proargtypes => 'timestamptz interval timestamptz interval',
2739 prosrc => 'see system_functions.sql' },
2740 { oid => '1306', descr => 'intervals overlap?',
2741 proname => 'overlaps', prolang => 'sql', proisstrict => 'f',
2742 provolatile => 's', prorettype => 'bool',
2743 proargtypes => 'timestamptz timestamptz timestamptz interval',
2744 prosrc => 'see system_functions.sql' },
2745 { oid => '1307', descr => 'intervals overlap?',
2746 proname => 'overlaps', prolang => 'sql', proisstrict => 'f',
2747 provolatile => 's', prorettype => 'bool',
2748 proargtypes => 'timestamptz interval timestamptz timestamptz',
2749 prosrc => 'see system_functions.sql' },
2751 { oid => '1308', descr => 'intervals overlap?',
2752 proname => 'overlaps', proisstrict => 'f', prorettype => 'bool',
2753 proargtypes => 'time time time time', prosrc => 'overlaps_time' },
2754 { oid => '1309', descr => 'intervals overlap?',
2755 proname => 'overlaps', prolang => 'sql', proisstrict => 'f',
2756 prorettype => 'bool', proargtypes => 'time interval time interval',
2757 prosrc => 'see system_functions.sql' },
2758 { oid => '1310', descr => 'intervals overlap?',
2759 proname => 'overlaps', prolang => 'sql', proisstrict => 'f',
2760 prorettype => 'bool', proargtypes => 'time time time interval',
2761 prosrc => 'see system_functions.sql' },
2762 { oid => '1311', descr => 'intervals overlap?',
2763 proname => 'overlaps', prolang => 'sql', proisstrict => 'f',
2764 prorettype => 'bool', proargtypes => 'time interval time time',
2765 prosrc => 'see system_functions.sql' },
2767 { oid => '1312', descr => 'I/O',
2768 proname => 'timestamp_in', provolatile => 's', prorettype => 'timestamp',
2769 proargtypes => 'cstring oid int4', prosrc => 'timestamp_in' },
2770 { oid => '1313', descr => 'I/O',
2771 proname => 'timestamp_out', provolatile => 's', prorettype => 'cstring',
2772 proargtypes => 'timestamp', prosrc => 'timestamp_out' },
2773 { oid => '2905', descr => 'I/O typmod',
2774 proname => 'timestamptypmodin', prorettype => 'int4',
2775 proargtypes => '_cstring', prosrc => 'timestamptypmodin' },
2776 { oid => '2906', descr => 'I/O typmod',
2777 proname => 'timestamptypmodout', prorettype => 'cstring',
2778 proargtypes => 'int4', prosrc => 'timestamptypmodout' },
2779 { oid => '1314', descr => 'less-equal-greater',
2780 proname => 'timestamptz_cmp', proleakproof => 't', prorettype => 'int4',
2781 proargtypes => 'timestamptz timestamptz', prosrc => 'timestamp_cmp' },
2782 { oid => '1315', descr => 'less-equal-greater',
2783 proname => 'interval_cmp', proleakproof => 't', prorettype => 'int4',
2784 proargtypes => 'interval interval', prosrc => 'interval_cmp' },
2785 { oid => '1316', descr => 'convert timestamp to time',
2786 proname => 'time', prorettype => 'time', proargtypes => 'timestamp',
2787 prosrc => 'timestamp_time' },
2789 { oid => '1317', descr => 'length',
2790 proname => 'length', prorettype => 'int4', proargtypes => 'text',
2791 prosrc => 'textlen' },
2792 { oid => '1318', descr => 'character length',
2793 proname => 'length', prorettype => 'int4', proargtypes => 'bpchar',
2794 prosrc => 'bpcharlen' },
2796 { oid => '1319',
2797 proname => 'xideqint4', proleakproof => 't', prorettype => 'bool',
2798 proargtypes => 'xid int4', prosrc => 'xideq' },
2799 { oid => '3309',
2800 proname => 'xidneqint4', proleakproof => 't', prorettype => 'bool',
2801 proargtypes => 'xid int4', prosrc => 'xidneq' },
2803 { oid => '1326',
2804 proname => 'interval_div', prorettype => 'interval',
2805 proargtypes => 'interval float8', prosrc => 'interval_div' },
2807 { oid => '1339', descr => 'base 10 logarithm',
2808 proname => 'dlog10', prorettype => 'float8', proargtypes => 'float8',
2809 prosrc => 'dlog10' },
2810 { oid => '1340', descr => 'base 10 logarithm',
2811 proname => 'log', prorettype => 'float8', proargtypes => 'float8',
2812 prosrc => 'dlog10' },
2813 { oid => '1194', descr => 'base 10 logarithm',
2814 proname => 'log10', prorettype => 'float8', proargtypes => 'float8',
2815 prosrc => 'dlog10' },
2816 { oid => '1341', descr => 'natural logarithm',
2817 proname => 'ln', prorettype => 'float8', proargtypes => 'float8',
2818 prosrc => 'dlog1' },
2819 { oid => '1342', descr => 'round to nearest integer',
2820 proname => 'round', prorettype => 'float8', proargtypes => 'float8',
2821 prosrc => 'dround' },
2822 { oid => '1343', descr => 'truncate to integer',
2823 proname => 'trunc', prorettype => 'float8', proargtypes => 'float8',
2824 prosrc => 'dtrunc' },
2825 { oid => '1344', descr => 'square root',
2826 proname => 'sqrt', prorettype => 'float8', proargtypes => 'float8',
2827 prosrc => 'dsqrt' },
2828 { oid => '1345', descr => 'cube root',
2829 proname => 'cbrt', prorettype => 'float8', proargtypes => 'float8',
2830 prosrc => 'dcbrt' },
2831 { oid => '1346', descr => 'exponentiation',
2832 proname => 'pow', prorettype => 'float8', proargtypes => 'float8 float8',
2833 prosrc => 'dpow' },
2834 { oid => '1368', descr => 'exponentiation',
2835 proname => 'power', prorettype => 'float8', proargtypes => 'float8 float8',
2836 prosrc => 'dpow' },
2837 { oid => '1347', descr => 'natural exponential (e^x)',
2838 proname => 'exp', prorettype => 'float8', proargtypes => 'float8',
2839 prosrc => 'dexp' },
2841 # This form of obj_description is now deprecated, since it will fail if
2842 # OIDs are not unique across system catalogs. Use the other form instead.
2843 { oid => '1348', descr => 'deprecated, use two-argument form instead',
2844 proname => 'obj_description', prolang => 'sql', procost => '100',
2845 provolatile => 's', prorettype => 'text', proargtypes => 'oid',
2846 prosrc => 'see system_functions.sql' },
2848 { oid => '1349', descr => 'print type names of oidvector field',
2849 proname => 'oidvectortypes', provolatile => 's', prorettype => 'text',
2850 proargtypes => 'oidvector', prosrc => 'oidvectortypes' },
2852 { oid => '1350', descr => 'I/O',
2853 proname => 'timetz_in', provolatile => 's', prorettype => 'timetz',
2854 proargtypes => 'cstring oid int4', prosrc => 'timetz_in' },
2855 { oid => '1351', descr => 'I/O',
2856 proname => 'timetz_out', prorettype => 'cstring', proargtypes => 'timetz',
2857 prosrc => 'timetz_out' },
2858 { oid => '2911', descr => 'I/O typmod',
2859 proname => 'timetztypmodin', prorettype => 'int4', proargtypes => '_cstring',
2860 prosrc => 'timetztypmodin' },
2861 { oid => '2912', descr => 'I/O typmod',
2862 proname => 'timetztypmodout', prorettype => 'cstring', proargtypes => 'int4',
2863 prosrc => 'timetztypmodout' },
2864 { oid => '1352',
2865 proname => 'timetz_eq', proleakproof => 't', prorettype => 'bool',
2866 proargtypes => 'timetz timetz', prosrc => 'timetz_eq' },
2867 { oid => '1353',
2868 proname => 'timetz_ne', proleakproof => 't', prorettype => 'bool',
2869 proargtypes => 'timetz timetz', prosrc => 'timetz_ne' },
2870 { oid => '1354',
2871 proname => 'timetz_lt', proleakproof => 't', prorettype => 'bool',
2872 proargtypes => 'timetz timetz', prosrc => 'timetz_lt' },
2873 { oid => '1355',
2874 proname => 'timetz_le', proleakproof => 't', prorettype => 'bool',
2875 proargtypes => 'timetz timetz', prosrc => 'timetz_le' },
2876 { oid => '1356',
2877 proname => 'timetz_ge', proleakproof => 't', prorettype => 'bool',
2878 proargtypes => 'timetz timetz', prosrc => 'timetz_ge' },
2879 { oid => '1357',
2880 proname => 'timetz_gt', proleakproof => 't', prorettype => 'bool',
2881 proargtypes => 'timetz timetz', prosrc => 'timetz_gt' },
2882 { oid => '1358', descr => 'less-equal-greater',
2883 proname => 'timetz_cmp', proleakproof => 't', prorettype => 'int4',
2884 proargtypes => 'timetz timetz', prosrc => 'timetz_cmp' },
2885 { oid => '1359',
2886 descr => 'convert date and time with time zone to timestamp with time zone',
2887 proname => 'timestamptz', prorettype => 'timestamptz',
2888 proargtypes => 'date timetz', prosrc => 'datetimetz_timestamptz' },
2890 { oid => '1367', descr => 'character length',
2891 proname => 'character_length', prorettype => 'int4', proargtypes => 'bpchar',
2892 prosrc => 'bpcharlen' },
2893 { oid => '1369', descr => 'character length',
2894 proname => 'character_length', prorettype => 'int4', proargtypes => 'text',
2895 prosrc => 'textlen' },
2897 { oid => '1370', descr => 'convert time to interval',
2898 proname => 'interval', proleakproof => 't', prorettype => 'interval',
2899 proargtypes => 'time', prosrc => 'time_interval' },
2900 { oid => '1372', descr => 'character length',
2901 proname => 'char_length', prorettype => 'int4', proargtypes => 'bpchar',
2902 prosrc => 'bpcharlen' },
2903 { oid => '1374', descr => 'octet length',
2904 proname => 'octet_length', prorettype => 'int4', proargtypes => 'text',
2905 prosrc => 'textoctetlen' },
2906 { oid => '1375', descr => 'octet length',
2907 proname => 'octet_length', prorettype => 'int4', proargtypes => 'bpchar',
2908 prosrc => 'bpcharoctetlen' },
2910 { oid => '1377', descr => 'larger of two',
2911 proname => 'time_larger', prorettype => 'time', proargtypes => 'time time',
2912 prosrc => 'time_larger' },
2913 { oid => '1378', descr => 'smaller of two',
2914 proname => 'time_smaller', prorettype => 'time', proargtypes => 'time time',
2915 prosrc => 'time_smaller' },
2916 { oid => '1379', descr => 'larger of two',
2917 proname => 'timetz_larger', prorettype => 'timetz',
2918 proargtypes => 'timetz timetz', prosrc => 'timetz_larger' },
2919 { oid => '1380', descr => 'smaller of two',
2920 proname => 'timetz_smaller', prorettype => 'timetz',
2921 proargtypes => 'timetz timetz', prosrc => 'timetz_smaller' },
2923 { oid => '1381', descr => 'character length',
2924 proname => 'char_length', prorettype => 'int4', proargtypes => 'text',
2925 prosrc => 'textlen' },
2927 { oid => '1384', descr => 'extract field from date',
2928 proname => 'date_part', prolang => 'sql', prorettype => 'float8',
2929 proargtypes => 'text date', prosrc => 'see system_functions.sql' },
2930 { oid => '6199', descr => 'extract field from date',
2931 proname => 'extract', prorettype => 'numeric', proargtypes => 'text date',
2932 prosrc => 'extract_date' },
2933 { oid => '1385', descr => 'extract field from time',
2934 proname => 'date_part', prorettype => 'float8', proargtypes => 'text time',
2935 prosrc => 'time_part' },
2936 { oid => '6200', descr => 'extract field from time',
2937 proname => 'extract', prorettype => 'numeric', proargtypes => 'text time',
2938 prosrc => 'extract_time' },
2939 { oid => '1386',
2940 descr => 'date difference from today preserving months and years',
2941 proname => 'age', prolang => 'sql', provolatile => 's',
2942 prorettype => 'interval', proargtypes => 'timestamptz',
2943 prosrc => 'see system_functions.sql' },
2945 { oid => '1388',
2946 descr => 'convert timestamp with time zone to time with time zone',
2947 proname => 'timetz', provolatile => 's', prorettype => 'timetz',
2948 proargtypes => 'timestamptz', prosrc => 'timestamptz_timetz' },
2950 { oid => '1373', descr => 'finite date?',
2951 proname => 'isfinite', prorettype => 'bool', proargtypes => 'date',
2952 prosrc => 'date_finite' },
2953 { oid => '1389', descr => 'finite timestamp?',
2954 proname => 'isfinite', prorettype => 'bool', proargtypes => 'timestamptz',
2955 prosrc => 'timestamp_finite' },
2956 { oid => '1390', descr => 'finite interval?',
2957 proname => 'isfinite', prorettype => 'bool', proargtypes => 'interval',
2958 prosrc => 'interval_finite' },
2960 { oid => '1376', descr => 'factorial',
2961 proname => 'factorial', prorettype => 'numeric', proargtypes => 'int8',
2962 prosrc => 'numeric_fac' },
2963 { oid => '1394', descr => 'absolute value',
2964 proname => 'abs', prorettype => 'float4', proargtypes => 'float4',
2965 prosrc => 'float4abs' },
2966 { oid => '1395', descr => 'absolute value',
2967 proname => 'abs', prorettype => 'float8', proargtypes => 'float8',
2968 prosrc => 'float8abs' },
2969 { oid => '1396', descr => 'absolute value',
2970 proname => 'abs', prorettype => 'int8', proargtypes => 'int8',
2971 prosrc => 'int8abs' },
2972 { oid => '1397', descr => 'absolute value',
2973 proname => 'abs', prorettype => 'int4', proargtypes => 'int4',
2974 prosrc => 'int4abs' },
2975 { oid => '1398', descr => 'absolute value',
2976 proname => 'abs', prorettype => 'int2', proargtypes => 'int2',
2977 prosrc => 'int2abs' },
2979 # OIDS 1400 - 1499
2981 { oid => '1400', descr => 'convert varchar to name',
2982 proname => 'name', proleakproof => 't', prorettype => 'name',
2983 proargtypes => 'varchar', prosrc => 'text_name' },
2984 { oid => '1401', descr => 'convert name to varchar',
2985 proname => 'varchar', proleakproof => 't', prorettype => 'varchar',
2986 proargtypes => 'name', prosrc => 'name_text' },
2988 { oid => '1402', descr => 'current schema name',
2989 proname => 'current_schema', provolatile => 's', proparallel => 'u',
2990 prorettype => 'name', proargtypes => '', prosrc => 'current_schema' },
2991 { oid => '1403', descr => 'current schema search list',
2992 proname => 'current_schemas', provolatile => 's', proparallel => 'u',
2993 prorettype => '_name', proargtypes => 'bool', prosrc => 'current_schemas' },
2995 { oid => '1404', descr => 'substitute portion of string',
2996 proname => 'overlay', prorettype => 'text',
2997 proargtypes => 'text text int4 int4', prosrc => 'textoverlay' },
2998 { oid => '1405', descr => 'substitute portion of string',
2999 proname => 'overlay', prorettype => 'text', proargtypes => 'text text int4',
3000 prosrc => 'textoverlay_no_len' },
3002 { oid => '1406', descr => 'vertically aligned',
3003 proname => 'isvertical', prorettype => 'bool', proargtypes => 'point point',
3004 prosrc => 'point_vert' },
3005 { oid => '1407', descr => 'horizontally aligned',
3006 proname => 'ishorizontal', prorettype => 'bool', proargtypes => 'point point',
3007 prosrc => 'point_horiz' },
3008 { oid => '1408', descr => 'parallel',
3009 proname => 'isparallel', prorettype => 'bool', proargtypes => 'lseg lseg',
3010 prosrc => 'lseg_parallel' },
3011 { oid => '1409', descr => 'perpendicular',
3012 proname => 'isperp', prorettype => 'bool', proargtypes => 'lseg lseg',
3013 prosrc => 'lseg_perp' },
3014 { oid => '1410', descr => 'vertical',
3015 proname => 'isvertical', prorettype => 'bool', proargtypes => 'lseg',
3016 prosrc => 'lseg_vertical' },
3017 { oid => '1411', descr => 'horizontal',
3018 proname => 'ishorizontal', prorettype => 'bool', proargtypes => 'lseg',
3019 prosrc => 'lseg_horizontal' },
3020 { oid => '1412', descr => 'parallel',
3021 proname => 'isparallel', prorettype => 'bool', proargtypes => 'line line',
3022 prosrc => 'line_parallel' },
3023 { oid => '1413', descr => 'perpendicular',
3024 proname => 'isperp', prorettype => 'bool', proargtypes => 'line line',
3025 prosrc => 'line_perp' },
3026 { oid => '1414', descr => 'vertical',
3027 proname => 'isvertical', prorettype => 'bool', proargtypes => 'line',
3028 prosrc => 'line_vertical' },
3029 { oid => '1415', descr => 'horizontal',
3030 proname => 'ishorizontal', prorettype => 'bool', proargtypes => 'line',
3031 prosrc => 'line_horizontal' },
3032 { oid => '1416', descr => 'center of',
3033 proname => 'point', prorettype => 'point', proargtypes => 'circle',
3034 prosrc => 'circle_center' },
3036 { oid => '1419', descr => 'convert interval to time',
3037 proname => 'time', prorettype => 'time', proargtypes => 'interval',
3038 prosrc => 'interval_time' },
3040 { oid => '1421', descr => 'convert points to box',
3041 proname => 'box', prorettype => 'box', proargtypes => 'point point',
3042 prosrc => 'points_box' },
3043 { oid => '1422',
3044 proname => 'box_add', prorettype => 'box', proargtypes => 'box point',
3045 prosrc => 'box_add' },
3046 { oid => '1423',
3047 proname => 'box_sub', prorettype => 'box', proargtypes => 'box point',
3048 prosrc => 'box_sub' },
3049 { oid => '1424',
3050 proname => 'box_mul', prorettype => 'box', proargtypes => 'box point',
3051 prosrc => 'box_mul' },
3052 { oid => '1425',
3053 proname => 'box_div', prorettype => 'box', proargtypes => 'box point',
3054 prosrc => 'box_div' },
3055 { oid => '1426',
3056 proname => 'path_contain_pt', prolang => 'sql', prorettype => 'bool',
3057 proargtypes => 'path point', prosrc => 'see system_functions.sql' },
3058 { oid => '1428',
3059 proname => 'poly_contain_pt', prorettype => 'bool',
3060 proargtypes => 'polygon point', prosrc => 'poly_contain_pt' },
3061 { oid => '1429',
3062 proname => 'pt_contained_poly', prorettype => 'bool',
3063 proargtypes => 'point polygon', prosrc => 'pt_contained_poly' },
3065 { oid => '1430', descr => 'path closed?',
3066 proname => 'isclosed', prorettype => 'bool', proargtypes => 'path',
3067 prosrc => 'path_isclosed' },
3068 { oid => '1431', descr => 'path open?',
3069 proname => 'isopen', prorettype => 'bool', proargtypes => 'path',
3070 prosrc => 'path_isopen' },
3071 { oid => '1432',
3072 proname => 'path_npoints', prorettype => 'int4', proargtypes => 'path',
3073 prosrc => 'path_npoints' },
3075 # pclose and popen might better be named close and open, but that crashes initdb.
3076 # - thomas 97/04/20
3077 { oid => '1433', descr => 'close path',
3078 proname => 'pclose', prorettype => 'path', proargtypes => 'path',
3079 prosrc => 'path_close' },
3080 { oid => '1434', descr => 'open path',
3081 proname => 'popen', prorettype => 'path', proargtypes => 'path',
3082 prosrc => 'path_open' },
3084 { oid => '1435',
3085 proname => 'path_add', prorettype => 'path', proargtypes => 'path path',
3086 prosrc => 'path_add' },
3087 { oid => '1436',
3088 proname => 'path_add_pt', prorettype => 'path', proargtypes => 'path point',
3089 prosrc => 'path_add_pt' },
3090 { oid => '1437',
3091 proname => 'path_sub_pt', prorettype => 'path', proargtypes => 'path point',
3092 prosrc => 'path_sub_pt' },
3093 { oid => '1438',
3094 proname => 'path_mul_pt', prorettype => 'path', proargtypes => 'path point',
3095 prosrc => 'path_mul_pt' },
3096 { oid => '1439',
3097 proname => 'path_div_pt', prorettype => 'path', proargtypes => 'path point',
3098 prosrc => 'path_div_pt' },
3100 { oid => '1440', descr => 'convert x, y to point',
3101 proname => 'point', prorettype => 'point', proargtypes => 'float8 float8',
3102 prosrc => 'construct_point' },
3103 { oid => '1441',
3104 proname => 'point_add', prorettype => 'point', proargtypes => 'point point',
3105 prosrc => 'point_add' },
3106 { oid => '1442',
3107 proname => 'point_sub', prorettype => 'point', proargtypes => 'point point',
3108 prosrc => 'point_sub' },
3109 { oid => '1443',
3110 proname => 'point_mul', prorettype => 'point', proargtypes => 'point point',
3111 prosrc => 'point_mul' },
3112 { oid => '1444',
3113 proname => 'point_div', prorettype => 'point', proargtypes => 'point point',
3114 prosrc => 'point_div' },
3116 { oid => '1445',
3117 proname => 'poly_npoints', prorettype => 'int4', proargtypes => 'polygon',
3118 prosrc => 'poly_npoints' },
3119 { oid => '1446', descr => 'convert polygon to bounding box',
3120 proname => 'box', prorettype => 'box', proargtypes => 'polygon',
3121 prosrc => 'poly_box' },
3122 { oid => '1447', descr => 'convert polygon to path',
3123 proname => 'path', prorettype => 'path', proargtypes => 'polygon',
3124 prosrc => 'poly_path' },
3125 { oid => '1448', descr => 'convert box to polygon',
3126 proname => 'polygon', prorettype => 'polygon', proargtypes => 'box',
3127 prosrc => 'box_poly' },
3128 { oid => '1449', descr => 'convert path to polygon',
3129 proname => 'polygon', prorettype => 'polygon', proargtypes => 'path',
3130 prosrc => 'path_poly' },
3132 { oid => '1450', descr => 'I/O',
3133 proname => 'circle_in', prorettype => 'circle', proargtypes => 'cstring',
3134 prosrc => 'circle_in' },
3135 { oid => '1451', descr => 'I/O',
3136 proname => 'circle_out', prorettype => 'cstring', proargtypes => 'circle',
3137 prosrc => 'circle_out' },
3138 { oid => '1452',
3139 proname => 'circle_same', prorettype => 'bool',
3140 proargtypes => 'circle circle', prosrc => 'circle_same' },
3141 { oid => '1453',
3142 proname => 'circle_contain', prorettype => 'bool',
3143 proargtypes => 'circle circle', prosrc => 'circle_contain' },
3144 { oid => '1454',
3145 proname => 'circle_left', prorettype => 'bool',
3146 proargtypes => 'circle circle', prosrc => 'circle_left' },
3147 { oid => '1455',
3148 proname => 'circle_overleft', prorettype => 'bool',
3149 proargtypes => 'circle circle', prosrc => 'circle_overleft' },
3150 { oid => '1456',
3151 proname => 'circle_overright', prorettype => 'bool',
3152 proargtypes => 'circle circle', prosrc => 'circle_overright' },
3153 { oid => '1457',
3154 proname => 'circle_right', prorettype => 'bool',
3155 proargtypes => 'circle circle', prosrc => 'circle_right' },
3156 { oid => '1458',
3157 proname => 'circle_contained', prorettype => 'bool',
3158 proargtypes => 'circle circle', prosrc => 'circle_contained' },
3159 { oid => '1459',
3160 proname => 'circle_overlap', prorettype => 'bool',
3161 proargtypes => 'circle circle', prosrc => 'circle_overlap' },
3162 { oid => '1460',
3163 proname => 'circle_below', prorettype => 'bool',
3164 proargtypes => 'circle circle', prosrc => 'circle_below' },
3165 { oid => '1461',
3166 proname => 'circle_above', prorettype => 'bool',
3167 proargtypes => 'circle circle', prosrc => 'circle_above' },
3168 { oid => '1462',
3169 proname => 'circle_eq', proleakproof => 't', prorettype => 'bool',
3170 proargtypes => 'circle circle', prosrc => 'circle_eq' },
3171 { oid => '1463',
3172 proname => 'circle_ne', proleakproof => 't', prorettype => 'bool',
3173 proargtypes => 'circle circle', prosrc => 'circle_ne' },
3174 { oid => '1464',
3175 proname => 'circle_lt', proleakproof => 't', prorettype => 'bool',
3176 proargtypes => 'circle circle', prosrc => 'circle_lt' },
3177 { oid => '1465',
3178 proname => 'circle_gt', proleakproof => 't', prorettype => 'bool',
3179 proargtypes => 'circle circle', prosrc => 'circle_gt' },
3180 { oid => '1466',
3181 proname => 'circle_le', proleakproof => 't', prorettype => 'bool',
3182 proargtypes => 'circle circle', prosrc => 'circle_le' },
3183 { oid => '1467',
3184 proname => 'circle_ge', proleakproof => 't', prorettype => 'bool',
3185 proargtypes => 'circle circle', prosrc => 'circle_ge' },
3186 { oid => '1468', descr => 'area of circle',
3187 proname => 'area', prorettype => 'float8', proargtypes => 'circle',
3188 prosrc => 'circle_area' },
3189 { oid => '1469', descr => 'diameter of circle',
3190 proname => 'diameter', prorettype => 'float8', proargtypes => 'circle',
3191 prosrc => 'circle_diameter' },
3192 { oid => '1470', descr => 'radius of circle',
3193 proname => 'radius', prorettype => 'float8', proargtypes => 'circle',
3194 prosrc => 'circle_radius' },
3195 { oid => '1471',
3196 proname => 'circle_distance', prorettype => 'float8',
3197 proargtypes => 'circle circle', prosrc => 'circle_distance' },
3198 { oid => '1472',
3199 proname => 'circle_center', prorettype => 'point', proargtypes => 'circle',
3200 prosrc => 'circle_center' },
3201 { oid => '1473', descr => 'convert point and radius to circle',
3202 proname => 'circle', prorettype => 'circle', proargtypes => 'point float8',
3203 prosrc => 'cr_circle' },
3204 { oid => '1474', descr => 'convert polygon to circle',
3205 proname => 'circle', prorettype => 'circle', proargtypes => 'polygon',
3206 prosrc => 'poly_circle' },
3207 { oid => '1475', descr => 'convert vertex count and circle to polygon',
3208 proname => 'polygon', prorettype => 'polygon', proargtypes => 'int4 circle',
3209 prosrc => 'circle_poly' },
3210 { oid => '1476',
3211 proname => 'dist_pc', prorettype => 'float8', proargtypes => 'point circle',
3212 prosrc => 'dist_pc' },
3213 { oid => '1477',
3214 proname => 'circle_contain_pt', prorettype => 'bool',
3215 proargtypes => 'circle point', prosrc => 'circle_contain_pt' },
3216 { oid => '1478',
3217 proname => 'pt_contained_circle', prorettype => 'bool',
3218 proargtypes => 'point circle', prosrc => 'pt_contained_circle' },
3219 { oid => '4091', descr => 'convert point to empty box',
3220 proname => 'box', prorettype => 'box', proargtypes => 'point',
3221 prosrc => 'point_box' },
3222 { oid => '1479', descr => 'convert box to circle',
3223 proname => 'circle', prorettype => 'circle', proargtypes => 'box',
3224 prosrc => 'box_circle' },
3225 { oid => '1480', descr => 'convert circle to box',
3226 proname => 'box', prorettype => 'box', proargtypes => 'circle',
3227 prosrc => 'circle_box' },
3229 { oid => '1482',
3230 proname => 'lseg_ne', proleakproof => 't', prorettype => 'bool',
3231 proargtypes => 'lseg lseg', prosrc => 'lseg_ne' },
3232 { oid => '1483',
3233 proname => 'lseg_lt', proleakproof => 't', prorettype => 'bool',
3234 proargtypes => 'lseg lseg', prosrc => 'lseg_lt' },
3235 { oid => '1484',
3236 proname => 'lseg_le', proleakproof => 't', prorettype => 'bool',
3237 proargtypes => 'lseg lseg', prosrc => 'lseg_le' },
3238 { oid => '1485',
3239 proname => 'lseg_gt', proleakproof => 't', prorettype => 'bool',
3240 proargtypes => 'lseg lseg', prosrc => 'lseg_gt' },
3241 { oid => '1486',
3242 proname => 'lseg_ge', proleakproof => 't', prorettype => 'bool',
3243 proargtypes => 'lseg lseg', prosrc => 'lseg_ge' },
3244 { oid => '1487',
3245 proname => 'lseg_length', prorettype => 'float8', proargtypes => 'lseg',
3246 prosrc => 'lseg_length' },
3247 { oid => '1488',
3248 proname => 'close_ls', prorettype => 'point', proargtypes => 'line lseg',
3249 prosrc => 'close_ls' },
3250 { oid => '1489',
3251 proname => 'close_lseg', prorettype => 'point', proargtypes => 'lseg lseg',
3252 prosrc => 'close_lseg' },
3254 { oid => '1490', descr => 'I/O',
3255 proname => 'line_in', prorettype => 'line', proargtypes => 'cstring',
3256 prosrc => 'line_in' },
3257 { oid => '1491', descr => 'I/O',
3258 proname => 'line_out', prorettype => 'cstring', proargtypes => 'line',
3259 prosrc => 'line_out' },
3260 { oid => '1492',
3261 proname => 'line_eq', prorettype => 'bool', proargtypes => 'line line',
3262 prosrc => 'line_eq' },
3263 { oid => '1493', descr => 'construct line from points',
3264 proname => 'line', prorettype => 'line', proargtypes => 'point point',
3265 prosrc => 'line_construct_pp' },
3266 { oid => '1494',
3267 proname => 'line_interpt', prorettype => 'point', proargtypes => 'line line',
3268 prosrc => 'line_interpt' },
3269 { oid => '1495',
3270 proname => 'line_intersect', prorettype => 'bool', proargtypes => 'line line',
3271 prosrc => 'line_intersect' },
3272 { oid => '1496',
3273 proname => 'line_parallel', prorettype => 'bool', proargtypes => 'line line',
3274 prosrc => 'line_parallel' },
3275 { oid => '1497',
3276 proname => 'line_perp', prorettype => 'bool', proargtypes => 'line line',
3277 prosrc => 'line_perp' },
3278 { oid => '1498',
3279 proname => 'line_vertical', prorettype => 'bool', proargtypes => 'line',
3280 prosrc => 'line_vertical' },
3281 { oid => '1499',
3282 proname => 'line_horizontal', prorettype => 'bool', proargtypes => 'line',
3283 prosrc => 'line_horizontal' },
3285 # OIDS 1500 - 1599
3287 { oid => '1530', descr => 'distance between endpoints',
3288 proname => 'length', prorettype => 'float8', proargtypes => 'lseg',
3289 prosrc => 'lseg_length' },
3290 { oid => '1531', descr => 'sum of path segments',
3291 proname => 'length', prorettype => 'float8', proargtypes => 'path',
3292 prosrc => 'path_length' },
3294 { oid => '1532', descr => 'center of',
3295 proname => 'point', prorettype => 'point', proargtypes => 'lseg',
3296 prosrc => 'lseg_center' },
3297 { oid => '1534', descr => 'center of',
3298 proname => 'point', prorettype => 'point', proargtypes => 'box',
3299 prosrc => 'box_center' },
3300 { oid => '1540', descr => 'center of',
3301 proname => 'point', prorettype => 'point', proargtypes => 'polygon',
3302 prosrc => 'poly_center' },
3303 { oid => '1541', descr => 'diagonal of',
3304 proname => 'lseg', prorettype => 'lseg', proargtypes => 'box',
3305 prosrc => 'box_diagonal' },
3306 { oid => '1542', descr => 'center of',
3307 proname => 'center', prorettype => 'point', proargtypes => 'box',
3308 prosrc => 'box_center' },
3309 { oid => '1543', descr => 'center of',
3310 proname => 'center', prorettype => 'point', proargtypes => 'circle',
3311 prosrc => 'circle_center' },
3312 { oid => '1544', descr => 'convert circle to 12-vertex polygon',
3313 proname => 'polygon', prolang => 'sql', prorettype => 'polygon',
3314 proargtypes => 'circle', prosrc => 'see system_functions.sql' },
3315 { oid => '1545', descr => 'number of points',
3316 proname => 'npoints', prorettype => 'int4', proargtypes => 'path',
3317 prosrc => 'path_npoints' },
3318 { oid => '1556', descr => 'number of points',
3319 proname => 'npoints', prorettype => 'int4', proargtypes => 'polygon',
3320 prosrc => 'poly_npoints' },
3322 { oid => '1564', descr => 'I/O',
3323 proname => 'bit_in', prorettype => 'bit', proargtypes => 'cstring oid int4',
3324 prosrc => 'bit_in' },
3325 { oid => '1565', descr => 'I/O',
3326 proname => 'bit_out', prorettype => 'cstring', proargtypes => 'bit',
3327 prosrc => 'bit_out' },
3328 { oid => '2919', descr => 'I/O typmod',
3329 proname => 'bittypmodin', prorettype => 'int4', proargtypes => '_cstring',
3330 prosrc => 'bittypmodin' },
3331 { oid => '2920', descr => 'I/O typmod',
3332 proname => 'bittypmodout', prorettype => 'cstring', proargtypes => 'int4',
3333 prosrc => 'bittypmodout' },
3335 { oid => '1569', descr => 'matches LIKE expression',
3336 proname => 'like', prosupport => 'textlike_support', prorettype => 'bool',
3337 proargtypes => 'text text', prosrc => 'textlike' },
3338 { oid => '1570', descr => 'does not match LIKE expression',
3339 proname => 'notlike', prorettype => 'bool', proargtypes => 'text text',
3340 prosrc => 'textnlike' },
3341 { oid => '1571', descr => 'matches LIKE expression',
3342 proname => 'like', prosupport => 'textlike_support', prorettype => 'bool',
3343 proargtypes => 'name text', prosrc => 'namelike' },
3344 { oid => '1572', descr => 'does not match LIKE expression',
3345 proname => 'notlike', prorettype => 'bool', proargtypes => 'name text',
3346 prosrc => 'namenlike' },
3348 # SEQUENCE functions
3349 { oid => '1574', descr => 'sequence next value',
3350 proname => 'nextval', provolatile => 'v', proparallel => 'u',
3351 prorettype => 'int8', proargtypes => 'regclass', prosrc => 'nextval_oid' },
3352 { oid => '1575', descr => 'sequence current value',
3353 proname => 'currval', provolatile => 'v', proparallel => 'u',
3354 prorettype => 'int8', proargtypes => 'regclass', prosrc => 'currval_oid' },
3355 { oid => '1576', descr => 'set sequence value',
3356 proname => 'setval', provolatile => 'v', proparallel => 'u',
3357 prorettype => 'int8', proargtypes => 'regclass int8',
3358 prosrc => 'setval_oid' },
3359 { oid => '1765', descr => 'set sequence value and is_called status',
3360 proname => 'setval', provolatile => 'v', proparallel => 'u',
3361 prorettype => 'int8', proargtypes => 'regclass int8 bool',
3362 prosrc => 'setval3_oid' },
3363 { oid => '3078',
3364 descr => 'sequence parameters, for use by information schema',
3365 proname => 'pg_sequence_parameters', provolatile => 's',
3366 prorettype => 'record', proargtypes => 'oid',
3367 proallargtypes => '{oid,int8,int8,int8,int8,bool,int8,oid}',
3368 proargmodes => '{i,o,o,o,o,o,o,o}',
3369 proargnames => '{sequence_oid,start_value,minimum_value,maximum_value,increment,cycle_option,cache_size,data_type}',
3370 prosrc => 'pg_sequence_parameters' },
3371 { oid => '4032', descr => 'sequence last value',
3372 proname => 'pg_sequence_last_value', provolatile => 'v', proparallel => 'u',
3373 prorettype => 'int8', proargtypes => 'regclass',
3374 prosrc => 'pg_sequence_last_value' },
3375 { oid => '9876', descr => 'return sequence tuple, for use by pg_dump',
3376 proname => 'pg_get_sequence_data', provolatile => 'v', proparallel => 'u',
3377 prorettype => 'record', proargtypes => 'regclass',
3378 proallargtypes => '{regclass,int8,bool}', proargmodes => '{i,o,o}',
3379 proargnames => '{sequence_oid,last_value,is_called}',
3380 prosrc => 'pg_get_sequence_data' },
3382 { oid => '275', descr => 'return the next oid for a system table',
3383 proname => 'pg_nextoid', provolatile => 'v', proparallel => 'u',
3384 prorettype => 'oid', proargtypes => 'regclass name regclass',
3385 prosrc => 'pg_nextoid' },
3386 { oid => '6241', descr => 'stop making pinned objects during initdb',
3387 proname => 'pg_stop_making_pinned_objects', provolatile => 'v',
3388 proparallel => 'u', prorettype => 'void', proargtypes => '',
3389 prosrc => 'pg_stop_making_pinned_objects' },
3391 { oid => '1579', descr => 'I/O',
3392 proname => 'varbit_in', prorettype => 'varbit',
3393 proargtypes => 'cstring oid int4', prosrc => 'varbit_in' },
3394 { oid => '1580', descr => 'I/O',
3395 proname => 'varbit_out', prorettype => 'cstring', proargtypes => 'varbit',
3396 prosrc => 'varbit_out' },
3397 { oid => '2902', descr => 'I/O typmod',
3398 proname => 'varbittypmodin', prorettype => 'int4', proargtypes => '_cstring',
3399 prosrc => 'varbittypmodin' },
3400 { oid => '2921', descr => 'I/O typmod',
3401 proname => 'varbittypmodout', prorettype => 'cstring', proargtypes => 'int4',
3402 prosrc => 'varbittypmodout' },
3404 { oid => '1581',
3405 proname => 'biteq', proleakproof => 't', prorettype => 'bool',
3406 proargtypes => 'bit bit', prosrc => 'biteq' },
3407 { oid => '1582',
3408 proname => 'bitne', proleakproof => 't', prorettype => 'bool',
3409 proargtypes => 'bit bit', prosrc => 'bitne' },
3410 { oid => '1592',
3411 proname => 'bitge', proleakproof => 't', prorettype => 'bool',
3412 proargtypes => 'bit bit', prosrc => 'bitge' },
3413 { oid => '1593',
3414 proname => 'bitgt', proleakproof => 't', prorettype => 'bool',
3415 proargtypes => 'bit bit', prosrc => 'bitgt' },
3416 { oid => '1594',
3417 proname => 'bitle', proleakproof => 't', prorettype => 'bool',
3418 proargtypes => 'bit bit', prosrc => 'bitle' },
3419 { oid => '1595',
3420 proname => 'bitlt', proleakproof => 't', prorettype => 'bool',
3421 proargtypes => 'bit bit', prosrc => 'bitlt' },
3422 { oid => '1596', descr => 'less-equal-greater',
3423 proname => 'bitcmp', proleakproof => 't', prorettype => 'int4',
3424 proargtypes => 'bit bit', prosrc => 'bitcmp' },
3426 { oid => '1598', descr => 'random value',
3427 proname => 'random', provolatile => 'v', proparallel => 'r',
3428 prorettype => 'float8', proargtypes => '', prosrc => 'drandom' },
3429 { oid => '6212', descr => 'random value from normal distribution',
3430 proname => 'random_normal', provolatile => 'v', proparallel => 'r',
3431 prorettype => 'float8', proargtypes => 'float8 float8',
3432 prosrc => 'drandom_normal' },
3433 { oid => '6339', descr => 'random integer in range',
3434 proname => 'random', provolatile => 'v', proparallel => 'r',
3435 prorettype => 'int4', proargtypes => 'int4 int4', proargnames => '{min,max}',
3436 prosrc => 'int4random' },
3437 { oid => '6340', descr => 'random bigint in range',
3438 proname => 'random', provolatile => 'v', proparallel => 'r',
3439 prorettype => 'int8', proargtypes => 'int8 int8', proargnames => '{min,max}',
3440 prosrc => 'int8random' },
3441 { oid => '6341', descr => 'random numeric in range',
3442 proname => 'random', provolatile => 'v', proparallel => 'r',
3443 prorettype => 'numeric', proargtypes => 'numeric numeric',
3444 proargnames => '{min,max}', prosrc => 'numeric_random' },
3445 { oid => '1599', descr => 'set random seed',
3446 proname => 'setseed', provolatile => 'v', proparallel => 'r',
3447 prorettype => 'void', proargtypes => 'float8', prosrc => 'setseed' },
3449 # OIDS 1600 - 1699
3451 { oid => '1600', descr => 'arcsine',
3452 proname => 'asin', prorettype => 'float8', proargtypes => 'float8',
3453 prosrc => 'dasin' },
3454 { oid => '1601', descr => 'arccosine',
3455 proname => 'acos', prorettype => 'float8', proargtypes => 'float8',
3456 prosrc => 'dacos' },
3457 { oid => '1602', descr => 'arctangent',
3458 proname => 'atan', prorettype => 'float8', proargtypes => 'float8',
3459 prosrc => 'datan' },
3460 { oid => '1603', descr => 'arctangent, two arguments',
3461 proname => 'atan2', prorettype => 'float8', proargtypes => 'float8 float8',
3462 prosrc => 'datan2' },
3463 { oid => '1604', descr => 'sine',
3464 proname => 'sin', prorettype => 'float8', proargtypes => 'float8',
3465 prosrc => 'dsin' },
3466 { oid => '1605', descr => 'cosine',
3467 proname => 'cos', prorettype => 'float8', proargtypes => 'float8',
3468 prosrc => 'dcos' },
3469 { oid => '1606', descr => 'tangent',
3470 proname => 'tan', prorettype => 'float8', proargtypes => 'float8',
3471 prosrc => 'dtan' },
3472 { oid => '1607', descr => 'cotangent',
3473 proname => 'cot', prorettype => 'float8', proargtypes => 'float8',
3474 prosrc => 'dcot' },
3476 { oid => '2731', descr => 'arcsine, degrees',
3477 proname => 'asind', prorettype => 'float8', proargtypes => 'float8',
3478 prosrc => 'dasind' },
3479 { oid => '2732', descr => 'arccosine, degrees',
3480 proname => 'acosd', prorettype => 'float8', proargtypes => 'float8',
3481 prosrc => 'dacosd' },
3482 { oid => '2733', descr => 'arctangent, degrees',
3483 proname => 'atand', prorettype => 'float8', proargtypes => 'float8',
3484 prosrc => 'datand' },
3485 { oid => '2734', descr => 'arctangent, two arguments, degrees',
3486 proname => 'atan2d', prorettype => 'float8', proargtypes => 'float8 float8',
3487 prosrc => 'datan2d' },
3488 { oid => '2735', descr => 'sine, degrees',
3489 proname => 'sind', prorettype => 'float8', proargtypes => 'float8',
3490 prosrc => 'dsind' },
3491 { oid => '2736', descr => 'cosine, degrees',
3492 proname => 'cosd', prorettype => 'float8', proargtypes => 'float8',
3493 prosrc => 'dcosd' },
3494 { oid => '2737', descr => 'tangent, degrees',
3495 proname => 'tand', prorettype => 'float8', proargtypes => 'float8',
3496 prosrc => 'dtand' },
3497 { oid => '2738', descr => 'cotangent, degrees',
3498 proname => 'cotd', prorettype => 'float8', proargtypes => 'float8',
3499 prosrc => 'dcotd' },
3501 { oid => '1608', descr => 'radians to degrees',
3502 proname => 'degrees', prorettype => 'float8', proargtypes => 'float8',
3503 prosrc => 'degrees' },
3504 { oid => '1609', descr => 'degrees to radians',
3505 proname => 'radians', prorettype => 'float8', proargtypes => 'float8',
3506 prosrc => 'radians' },
3507 { oid => '1610', descr => 'PI',
3508 proname => 'pi', prorettype => 'float8', proargtypes => '', prosrc => 'dpi' },
3510 { oid => '2462', descr => 'hyperbolic sine',
3511 proname => 'sinh', prorettype => 'float8', proargtypes => 'float8',
3512 prosrc => 'dsinh' },
3513 { oid => '2463', descr => 'hyperbolic cosine',
3514 proname => 'cosh', prorettype => 'float8', proargtypes => 'float8',
3515 prosrc => 'dcosh' },
3516 { oid => '2464', descr => 'hyperbolic tangent',
3517 proname => 'tanh', prorettype => 'float8', proargtypes => 'float8',
3518 prosrc => 'dtanh' },
3519 { oid => '2465', descr => 'inverse hyperbolic sine',
3520 proname => 'asinh', prorettype => 'float8', proargtypes => 'float8',
3521 prosrc => 'dasinh' },
3522 { oid => '2466', descr => 'inverse hyperbolic cosine',
3523 proname => 'acosh', prorettype => 'float8', proargtypes => 'float8',
3524 prosrc => 'dacosh' },
3525 { oid => '2467', descr => 'inverse hyperbolic tangent',
3526 proname => 'atanh', prorettype => 'float8', proargtypes => 'float8',
3527 prosrc => 'datanh' },
3529 { oid => '6219', descr => 'error function',
3530 proname => 'erf', prorettype => 'float8', proargtypes => 'float8',
3531 prosrc => 'derf' },
3532 { oid => '6220', descr => 'complementary error function',
3533 proname => 'erfc', prorettype => 'float8', proargtypes => 'float8',
3534 prosrc => 'derfc' },
3536 { oid => '1618',
3537 proname => 'interval_mul', prorettype => 'interval',
3538 proargtypes => 'interval float8', prosrc => 'interval_mul' },
3540 { oid => '1620', descr => 'convert first char to int4',
3541 proname => 'ascii', prorettype => 'int4', proargtypes => 'text',
3542 prosrc => 'ascii' },
3543 { oid => '1621', descr => 'convert int4 to char',
3544 proname => 'chr', prorettype => 'text', proargtypes => 'int4',
3545 prosrc => 'chr' },
3546 { oid => '1622', descr => 'replicate string n times',
3547 proname => 'repeat', prorettype => 'text', proargtypes => 'text int4',
3548 prosrc => 'repeat' },
3550 { oid => '1623', descr => 'convert SQL regexp pattern to POSIX style',
3551 proname => 'similar_escape', proisstrict => 'f', prorettype => 'text',
3552 proargtypes => 'text text', prosrc => 'similar_escape' },
3553 { oid => '1986', descr => 'convert SQL regexp pattern to POSIX style',
3554 proname => 'similar_to_escape', prorettype => 'text',
3555 proargtypes => 'text text', prosrc => 'similar_to_escape_2' },
3556 { oid => '1987', descr => 'convert SQL regexp pattern to POSIX style',
3557 proname => 'similar_to_escape', prorettype => 'text', proargtypes => 'text',
3558 prosrc => 'similar_to_escape_1' },
3560 { oid => '1624',
3561 proname => 'mul_d_interval', prorettype => 'interval',
3562 proargtypes => 'float8 interval', prosrc => 'mul_d_interval' },
3564 { oid => '1631',
3565 proname => 'bpcharlike', prosupport => 'textlike_support',
3566 prorettype => 'bool', proargtypes => 'bpchar text', prosrc => 'textlike' },
3567 { oid => '1632',
3568 proname => 'bpcharnlike', prorettype => 'bool', proargtypes => 'bpchar text',
3569 prosrc => 'textnlike' },
3571 { oid => '1633',
3572 proname => 'texticlike', prosupport => 'texticlike_support',
3573 prorettype => 'bool', proargtypes => 'text text', prosrc => 'texticlike' },
3574 { oid => '1025', descr => 'planner support for texticlike',
3575 proname => 'texticlike_support', prorettype => 'internal',
3576 proargtypes => 'internal', prosrc => 'texticlike_support' },
3577 { oid => '1634',
3578 proname => 'texticnlike', prorettype => 'bool', proargtypes => 'text text',
3579 prosrc => 'texticnlike' },
3580 { oid => '1635',
3581 proname => 'nameiclike', prosupport => 'texticlike_support',
3582 prorettype => 'bool', proargtypes => 'name text', prosrc => 'nameiclike' },
3583 { oid => '1636',
3584 proname => 'nameicnlike', prorettype => 'bool', proargtypes => 'name text',
3585 prosrc => 'nameicnlike' },
3586 { oid => '1637', descr => 'convert LIKE pattern to use backslash escapes',
3587 proname => 'like_escape', prorettype => 'text', proargtypes => 'text text',
3588 prosrc => 'like_escape' },
3590 { oid => '1656',
3591 proname => 'bpcharicregexeq', prosupport => 'texticregexeq_support',
3592 prorettype => 'bool', proargtypes => 'bpchar text',
3593 prosrc => 'texticregexeq' },
3594 { oid => '1657',
3595 proname => 'bpcharicregexne', prorettype => 'bool',
3596 proargtypes => 'bpchar text', prosrc => 'texticregexne' },
3597 { oid => '1658',
3598 proname => 'bpcharregexeq', prosupport => 'textregexeq_support',
3599 prorettype => 'bool', proargtypes => 'bpchar text', prosrc => 'textregexeq' },
3600 { oid => '1659',
3601 proname => 'bpcharregexne', prorettype => 'bool',
3602 proargtypes => 'bpchar text', prosrc => 'textregexne' },
3603 { oid => '1660',
3604 proname => 'bpchariclike', prosupport => 'texticlike_support',
3605 prorettype => 'bool', proargtypes => 'bpchar text', prosrc => 'texticlike' },
3606 { oid => '1661',
3607 proname => 'bpcharicnlike', prorettype => 'bool',
3608 proargtypes => 'bpchar text', prosrc => 'texticnlike' },
3610 # Oracle Compatibility Related Functions - By Edmund Mergl <E.Mergl@bawue.de>
3611 { oid => '868', descr => 'position of substring',
3612 proname => 'strpos', prorettype => 'int4', proargtypes => 'text text',
3613 prosrc => 'textpos' },
3614 { oid => '870', descr => 'lowercase',
3615 proname => 'lower', prorettype => 'text', proargtypes => 'text',
3616 prosrc => 'lower' },
3617 { oid => '871', descr => 'uppercase',
3618 proname => 'upper', prorettype => 'text', proargtypes => 'text',
3619 prosrc => 'upper' },
3620 { oid => '872', descr => 'capitalize each word',
3621 proname => 'initcap', prorettype => 'text', proargtypes => 'text',
3622 prosrc => 'initcap' },
3623 { oid => '873', descr => 'left-pad string to length',
3624 proname => 'lpad', prorettype => 'text', proargtypes => 'text int4 text',
3625 prosrc => 'lpad' },
3626 { oid => '874', descr => 'right-pad string to length',
3627 proname => 'rpad', prorettype => 'text', proargtypes => 'text int4 text',
3628 prosrc => 'rpad' },
3629 { oid => '875', descr => 'trim selected characters from left end of string',
3630 proname => 'ltrim', prorettype => 'text', proargtypes => 'text text',
3631 prosrc => 'ltrim' },
3632 { oid => '876', descr => 'trim selected characters from right end of string',
3633 proname => 'rtrim', prorettype => 'text', proargtypes => 'text text',
3634 prosrc => 'rtrim' },
3635 { oid => '877', descr => 'extract portion of string',
3636 proname => 'substr', prorettype => 'text', proargtypes => 'text int4 int4',
3637 prosrc => 'text_substr' },
3638 { oid => '878', descr => 'map a set of characters appearing in string',
3639 proname => 'translate', prorettype => 'text', proargtypes => 'text text text',
3640 prosrc => 'translate' },
3641 { oid => '879', descr => 'left-pad string to length',
3642 proname => 'lpad', prolang => 'sql', prorettype => 'text',
3643 proargtypes => 'text int4', prosrc => 'see system_functions.sql' },
3644 { oid => '880', descr => 'right-pad string to length',
3645 proname => 'rpad', prolang => 'sql', prorettype => 'text',
3646 proargtypes => 'text int4', prosrc => 'see system_functions.sql' },
3647 { oid => '881', descr => 'trim spaces from left end of string',
3648 proname => 'ltrim', prorettype => 'text', proargtypes => 'text',
3649 prosrc => 'ltrim1' },
3650 { oid => '882', descr => 'trim spaces from right end of string',
3651 proname => 'rtrim', prorettype => 'text', proargtypes => 'text',
3652 prosrc => 'rtrim1' },
3653 { oid => '883', descr => 'extract portion of string',
3654 proname => 'substr', prorettype => 'text', proargtypes => 'text int4',
3655 prosrc => 'text_substr_no_len' },
3656 { oid => '884', descr => 'trim selected characters from both ends of string',
3657 proname => 'btrim', prorettype => 'text', proargtypes => 'text text',
3658 prosrc => 'btrim' },
3659 { oid => '885', descr => 'trim spaces from both ends of string',
3660 proname => 'btrim', prorettype => 'text', proargtypes => 'text',
3661 prosrc => 'btrim1' },
3663 { oid => '936', descr => 'extract portion of string',
3664 proname => 'substring', prorettype => 'text', proargtypes => 'text int4 int4',
3665 prosrc => 'text_substr' },
3666 { oid => '937', descr => 'extract portion of string',
3667 proname => 'substring', prorettype => 'text', proargtypes => 'text int4',
3668 prosrc => 'text_substr_no_len' },
3669 { oid => '2087',
3670 descr => 'replace all occurrences in string of old_substr with new_substr',
3671 proname => 'replace', prorettype => 'text', proargtypes => 'text text text',
3672 prosrc => 'replace_text' },
3673 { oid => '2284', descr => 'replace text using regexp',
3674 proname => 'regexp_replace', prorettype => 'text',
3675 proargtypes => 'text text text',
3676 proargnames => '{string, pattern, replacement}',
3677 prosrc => 'textregexreplace_noopt' },
3678 { oid => '2285', descr => 'replace text using regexp',
3679 proname => 'regexp_replace', prorettype => 'text',
3680 proargtypes => 'text text text text',
3681 proargnames => '{string, pattern, replacement, flags}',
3682 prosrc => 'textregexreplace' },
3683 { oid => '6251', descr => 'replace text using regexp',
3684 proname => 'regexp_replace', prorettype => 'text',
3685 proargtypes => 'text text text int4 int4 text',
3686 proargnames => '{string, pattern, replacement, start, N, flags}',
3687 prosrc => 'textregexreplace_extended' },
3688 { oid => '6252', descr => 'replace text using regexp',
3689 proname => 'regexp_replace', prorettype => 'text',
3690 proargtypes => 'text text text int4 int4',
3691 proargnames => '{string, pattern, replacement, start, N}',
3692 prosrc => 'textregexreplace_extended_no_flags' },
3693 { oid => '6253', descr => 'replace text using regexp',
3694 proname => 'regexp_replace', prorettype => 'text',
3695 proargtypes => 'text text text int4',
3696 proargnames => '{string, pattern, replacement, start}',
3697 prosrc => 'textregexreplace_extended_no_n' },
3698 { oid => '3396', descr => 'find first match for regexp',
3699 proname => 'regexp_match', prorettype => '_text', proargtypes => 'text text',
3700 proargnames => '{string, pattern}', prosrc => 'regexp_match_no_flags' },
3701 { oid => '3397', descr => 'find first match for regexp',
3702 proname => 'regexp_match', prorettype => '_text',
3703 proargtypes => 'text text text', proargnames => '{string, pattern, flags}',
3704 prosrc => 'regexp_match' },
3705 { oid => '2763', descr => 'find match(es) for regexp',
3706 proname => 'regexp_matches', prorows => '1', proretset => 't',
3707 prorettype => '_text', proargtypes => 'text text',
3708 proargnames => '{string, pattern}', prosrc => 'regexp_matches_no_flags' },
3709 { oid => '2764', descr => 'find match(es) for regexp',
3710 proname => 'regexp_matches', prorows => '10', proretset => 't',
3711 prorettype => '_text', proargtypes => 'text text text',
3712 proargnames => '{string, pattern, flags}', prosrc => 'regexp_matches' },
3713 { oid => '6254', descr => 'count regexp matches',
3714 proname => 'regexp_count', prorettype => 'int4', proargtypes => 'text text',
3715 proargnames => '{string, pattern}', prosrc => 'regexp_count_no_start' },
3716 { oid => '6255', descr => 'count regexp matches',
3717 proname => 'regexp_count', prorettype => 'int4',
3718 proargtypes => 'text text int4', proargnames => '{string, pattern, start}',
3719 prosrc => 'regexp_count_no_flags' },
3720 { oid => '6256', descr => 'count regexp matches',
3721 proname => 'regexp_count', prorettype => 'int4',
3722 proargtypes => 'text text int4 text',
3723 proargnames => '{string, pattern, start, flags}', prosrc => 'regexp_count' },
3724 { oid => '6257', descr => 'position of regexp match',
3725 proname => 'regexp_instr', prorettype => 'int4', proargtypes => 'text text',
3726 proargnames => '{string, pattern}', prosrc => 'regexp_instr_no_start' },
3727 { oid => '6258', descr => 'position of regexp match',
3728 proname => 'regexp_instr', prorettype => 'int4',
3729 proargtypes => 'text text int4', proargnames => '{string, pattern, start}',
3730 prosrc => 'regexp_instr_no_n' },
3731 { oid => '6259', descr => 'position of regexp match',
3732 proname => 'regexp_instr', prorettype => 'int4',
3733 proargtypes => 'text text int4 int4',
3734 proargnames => '{string, pattern, start, N}',
3735 prosrc => 'regexp_instr_no_endoption' },
3736 { oid => '6260', descr => 'position of regexp match',
3737 proname => 'regexp_instr', prorettype => 'int4',
3738 proargtypes => 'text text int4 int4 int4',
3739 proargnames => '{string, pattern, start, N, endoption}',
3740 prosrc => 'regexp_instr_no_flags' },
3741 { oid => '6261', descr => 'position of regexp match',
3742 proname => 'regexp_instr', prorettype => 'int4',
3743 proargtypes => 'text text int4 int4 int4 text',
3744 proargnames => '{string, pattern, start, N, endoption, flags}',
3745 prosrc => 'regexp_instr_no_subexpr' },
3746 { oid => '6262', descr => 'position of regexp match',
3747 proname => 'regexp_instr', prorettype => 'int4',
3748 proargtypes => 'text text int4 int4 int4 text int4',
3749 proargnames => '{string, pattern, start, N, endoption, flags, subexpr}',
3750 prosrc => 'regexp_instr' },
3751 { oid => '6263', descr => 'test for regexp match',
3752 proname => 'regexp_like', prorettype => 'bool', proargtypes => 'text text',
3753 proargnames => '{string, pattern}', prosrc => 'regexp_like_no_flags' },
3754 { oid => '6264', descr => 'test for regexp match',
3755 proname => 'regexp_like', prorettype => 'bool',
3756 proargtypes => 'text text text', proargnames => '{string, pattern,flags}',
3757 prosrc => 'regexp_like' },
3758 { oid => '6265', descr => 'extract substring that matches regexp',
3759 proname => 'regexp_substr', prorettype => 'text', proargtypes => 'text text',
3760 proargnames => '{string, pattern}', prosrc => 'regexp_substr_no_start' },
3761 { oid => '6266', descr => 'extract substring that matches regexp',
3762 proname => 'regexp_substr', prorettype => 'text',
3763 proargtypes => 'text text int4', proargnames => '{string, pattern, start}',
3764 prosrc => 'regexp_substr_no_n' },
3765 { oid => '6267', descr => 'extract substring that matches regexp',
3766 proname => 'regexp_substr', prorettype => 'text',
3767 proargtypes => 'text text int4 int4',
3768 proargnames => '{string, pattern, start, N}',
3769 prosrc => 'regexp_substr_no_flags' },
3770 { oid => '6268', descr => 'extract substring that matches regexp',
3771 proname => 'regexp_substr', prorettype => 'text',
3772 proargtypes => 'text text int4 int4 text',
3773 proargnames => '{string, pattern, start, N, flags}',
3774 prosrc => 'regexp_substr_no_subexpr' },
3775 { oid => '6269', descr => 'extract substring that matches regexp',
3776 proname => 'regexp_substr', prorettype => 'text',
3777 proargtypes => 'text text int4 int4 text int4',
3778 proargnames => '{string, pattern, start, N, flags, subexpr}',
3779 prosrc => 'regexp_substr' },
3780 { oid => '2088', descr => 'split string by field_sep and return field_num',
3781 proname => 'split_part', prorettype => 'text',
3782 proargtypes => 'text text int4', prosrc => 'split_part' },
3783 { oid => '2765', descr => 'split string by pattern',
3784 proname => 'regexp_split_to_table', prorows => '1000', proretset => 't',
3785 prorettype => 'text', proargtypes => 'text text',
3786 proargnames => '{string, pattern}',
3787 prosrc => 'regexp_split_to_table_no_flags' },
3788 { oid => '2766', descr => 'split string by pattern',
3789 proname => 'regexp_split_to_table', prorows => '1000', proretset => 't',
3790 prorettype => 'text', proargtypes => 'text text text',
3791 proargnames => '{string, pattern, flags}',
3792 prosrc => 'regexp_split_to_table' },
3793 { oid => '2767', descr => 'split string by pattern',
3794 proname => 'regexp_split_to_array', prorettype => '_text',
3795 proargtypes => 'text text', proargnames => '{string, pattern}',
3796 prosrc => 'regexp_split_to_array_no_flags' },
3797 { oid => '2768', descr => 'split string by pattern',
3798 proname => 'regexp_split_to_array', prorettype => '_text',
3799 proargtypes => 'text text text', proargnames => '{string, pattern, flags}',
3800 prosrc => 'regexp_split_to_array' },
3801 { oid => '6330', descr => 'convert int4 number to binary',
3802 proname => 'to_bin', prorettype => 'text', proargtypes => 'int4',
3803 prosrc => 'to_bin32' },
3804 { oid => '6331', descr => 'convert int8 number to binary',
3805 proname => 'to_bin', prorettype => 'text', proargtypes => 'int8',
3806 prosrc => 'to_bin64' },
3807 { oid => '6332', descr => 'convert int4 number to oct',
3808 proname => 'to_oct', prorettype => 'text', proargtypes => 'int4',
3809 prosrc => 'to_oct32' },
3810 { oid => '6333', descr => 'convert int8 number to oct',
3811 proname => 'to_oct', prorettype => 'text', proargtypes => 'int8',
3812 prosrc => 'to_oct64' },
3813 { oid => '2089', descr => 'convert int4 number to hex',
3814 proname => 'to_hex', prorettype => 'text', proargtypes => 'int4',
3815 prosrc => 'to_hex32' },
3816 { oid => '2090', descr => 'convert int8 number to hex',
3817 proname => 'to_hex', prorettype => 'text', proargtypes => 'int8',
3818 prosrc => 'to_hex64' },
3820 # for character set encoding support
3822 # return database encoding name
3823 { oid => '1039', descr => 'encoding name of current database',
3824 proname => 'getdatabaseencoding', provolatile => 's', prorettype => 'name',
3825 proargtypes => '', prosrc => 'getdatabaseencoding' },
3827 # return client encoding name i.e. session encoding
3828 { oid => '810', descr => 'encoding name of current database',
3829 proname => 'pg_client_encoding', provolatile => 's', prorettype => 'name',
3830 proargtypes => '', prosrc => 'pg_client_encoding' },
3832 { oid => '1713', descr => 'length of string in specified encoding',
3833 proname => 'length', provolatile => 's', prorettype => 'int4',
3834 proargtypes => 'bytea name', prosrc => 'length_in_encoding' },
3836 { oid => '1714',
3837 descr => 'convert string with specified source encoding name',
3838 proname => 'convert_from', provolatile => 's', prorettype => 'text',
3839 proargtypes => 'bytea name', prosrc => 'pg_convert_from' },
3841 { oid => '1717',
3842 descr => 'convert string with specified destination encoding name',
3843 proname => 'convert_to', provolatile => 's', prorettype => 'bytea',
3844 proargtypes => 'text name', prosrc => 'pg_convert_to' },
3846 { oid => '1813', descr => 'convert string with specified encoding names',
3847 proname => 'convert', provolatile => 's', prorettype => 'bytea',
3848 proargtypes => 'bytea name name', prosrc => 'pg_convert' },
3850 { oid => '1264', descr => 'convert encoding name to encoding id',
3851 proname => 'pg_char_to_encoding', provolatile => 's', prorettype => 'int4',
3852 proargtypes => 'name', prosrc => 'PG_char_to_encoding' },
3854 { oid => '1597', descr => 'convert encoding id to encoding name',
3855 proname => 'pg_encoding_to_char', provolatile => 's', prorettype => 'name',
3856 proargtypes => 'int4', prosrc => 'PG_encoding_to_char' },
3858 { oid => '2319',
3859 descr => 'maximum octet length of a character in given encoding',
3860 proname => 'pg_encoding_max_length', prorettype => 'int4',
3861 proargtypes => 'int4', prosrc => 'pg_encoding_max_length_sql' },
3863 { oid => '1638',
3864 proname => 'oidgt', proleakproof => 't', prorettype => 'bool',
3865 proargtypes => 'oid oid', prosrc => 'oidgt' },
3866 { oid => '1639',
3867 proname => 'oidge', proleakproof => 't', prorettype => 'bool',
3868 proargtypes => 'oid oid', prosrc => 'oidge' },
3870 # System-view support functions
3871 { oid => '1573', descr => 'source text of a rule',
3872 proname => 'pg_get_ruledef', provolatile => 's', prorettype => 'text',
3873 proargtypes => 'oid', prosrc => 'pg_get_ruledef' },
3874 { oid => '1640', descr => 'select statement of a view',
3875 proname => 'pg_get_viewdef', provolatile => 's', proparallel => 'r',
3876 prorettype => 'text', proargtypes => 'text',
3877 prosrc => 'pg_get_viewdef_name' },
3878 { oid => '1641', descr => 'select statement of a view',
3879 proname => 'pg_get_viewdef', provolatile => 's', proparallel => 'r',
3880 prorettype => 'text', proargtypes => 'oid', prosrc => 'pg_get_viewdef' },
3881 { oid => '1642', descr => 'role name by OID (with fallback)',
3882 proname => 'pg_get_userbyid', provolatile => 's', prorettype => 'name',
3883 proargtypes => 'oid', prosrc => 'pg_get_userbyid' },
3884 { oid => '1643', descr => 'index description',
3885 proname => 'pg_get_indexdef', provolatile => 's', prorettype => 'text',
3886 proargtypes => 'oid', prosrc => 'pg_get_indexdef' },
3887 { oid => '3415', descr => 'extended statistics object description',
3888 proname => 'pg_get_statisticsobjdef', provolatile => 's',
3889 prorettype => 'text', proargtypes => 'oid',
3890 prosrc => 'pg_get_statisticsobjdef' },
3891 { oid => '6174', descr => 'extended statistics columns',
3892 proname => 'pg_get_statisticsobjdef_columns', provolatile => 's',
3893 prorettype => 'text', proargtypes => 'oid',
3894 prosrc => 'pg_get_statisticsobjdef_columns' },
3895 { oid => '6173', descr => 'extended statistics expressions',
3896 proname => 'pg_get_statisticsobjdef_expressions', provolatile => 's',
3897 prorettype => '_text', proargtypes => 'oid',
3898 prosrc => 'pg_get_statisticsobjdef_expressions' },
3899 { oid => '3352', descr => 'partition key description',
3900 proname => 'pg_get_partkeydef', provolatile => 's', prorettype => 'text',
3901 proargtypes => 'oid', prosrc => 'pg_get_partkeydef' },
3902 { oid => '3408', descr => 'partition constraint description',
3903 proname => 'pg_get_partition_constraintdef', provolatile => 's',
3904 prorettype => 'text', proargtypes => 'oid',
3905 prosrc => 'pg_get_partition_constraintdef' },
3906 { oid => '1662', descr => 'trigger description',
3907 proname => 'pg_get_triggerdef', provolatile => 's', prorettype => 'text',
3908 proargtypes => 'oid', prosrc => 'pg_get_triggerdef' },
3909 { oid => '1387', descr => 'constraint description',
3910 proname => 'pg_get_constraintdef', provolatile => 's', prorettype => 'text',
3911 proargtypes => 'oid', prosrc => 'pg_get_constraintdef' },
3912 { oid => '1716', descr => 'deparse an encoded expression',
3913 proname => 'pg_get_expr', provolatile => 's', prorettype => 'text',
3914 proargtypes => 'pg_node_tree oid', prosrc => 'pg_get_expr' },
3915 { oid => '1665', descr => 'name of sequence for a serial column',
3916 proname => 'pg_get_serial_sequence', provolatile => 's', prorettype => 'text',
3917 proargtypes => 'text text', prosrc => 'pg_get_serial_sequence' },
3918 { oid => '2098', descr => 'definition of a function',
3919 proname => 'pg_get_functiondef', provolatile => 's', prorettype => 'text',
3920 proargtypes => 'oid', prosrc => 'pg_get_functiondef' },
3921 { oid => '2162', descr => 'argument list of a function',
3922 proname => 'pg_get_function_arguments', provolatile => 's',
3923 prorettype => 'text', proargtypes => 'oid',
3924 prosrc => 'pg_get_function_arguments' },
3925 { oid => '2232', descr => 'identity argument list of a function',
3926 proname => 'pg_get_function_identity_arguments', provolatile => 's',
3927 prorettype => 'text', proargtypes => 'oid',
3928 prosrc => 'pg_get_function_identity_arguments' },
3929 { oid => '2165', descr => 'result type of a function',
3930 proname => 'pg_get_function_result', provolatile => 's', prorettype => 'text',
3931 proargtypes => 'oid', prosrc => 'pg_get_function_result' },
3932 { oid => '3808', descr => 'function argument default',
3933 proname => 'pg_get_function_arg_default', provolatile => 's',
3934 prorettype => 'text', proargtypes => 'oid int4',
3935 prosrc => 'pg_get_function_arg_default' },
3936 { oid => '6197', descr => 'function SQL body',
3937 proname => 'pg_get_function_sqlbody', provolatile => 's',
3938 prorettype => 'text', proargtypes => 'oid',
3939 prosrc => 'pg_get_function_sqlbody' },
3941 { oid => '1686', descr => 'list of SQL keywords',
3942 proname => 'pg_get_keywords', procost => '10', prorows => '500',
3943 proretset => 't', provolatile => 's', prorettype => 'record',
3944 proargtypes => '', proallargtypes => '{text,char,bool,text,text}',
3945 proargmodes => '{o,o,o,o,o}',
3946 proargnames => '{word,catcode,barelabel,catdesc,baredesc}',
3947 prosrc => 'pg_get_keywords' },
3949 { oid => '6159', descr => 'list of catalog foreign key relationships',
3950 proname => 'pg_get_catalog_foreign_keys', procost => '10', prorows => '250',
3951 proretset => 't', provolatile => 's', prorettype => 'record',
3952 proargtypes => '',
3953 proallargtypes => '{regclass,_text,regclass,_text,bool,bool}',
3954 proargmodes => '{o,o,o,o,o,o}',
3955 proargnames => '{fktable,fkcols,pktable,pkcols,is_array,is_opt}',
3956 prosrc => 'pg_get_catalog_foreign_keys' },
3958 { oid => '2289', descr => 'convert generic options array to name/value table',
3959 proname => 'pg_options_to_table', prorows => '3', proretset => 't',
3960 provolatile => 's', prorettype => 'record', proargtypes => '_text',
3961 proallargtypes => '{_text,text,text}', proargmodes => '{i,o,o}',
3962 proargnames => '{options_array,option_name,option_value}',
3963 prosrc => 'pg_options_to_table' },
3965 { oid => '1619', descr => 'type of the argument',
3966 proname => 'pg_typeof', proisstrict => 'f', provolatile => 's',
3967 prorettype => 'regtype', proargtypes => 'any', prosrc => 'pg_typeof' },
3968 { oid => '6315', descr => 'base type of a domain type',
3969 proname => 'pg_basetype', provolatile => 's', prorettype => 'regtype',
3970 proargtypes => 'regtype', prosrc => 'pg_basetype' },
3971 { oid => '3162',
3972 descr => 'collation of the argument; implementation of the COLLATION FOR expression',
3973 proname => 'pg_collation_for', proisstrict => 'f', provolatile => 's',
3974 prorettype => 'text', proargtypes => 'any', prosrc => 'pg_collation_for' },
3976 { oid => '3842', descr => 'is a relation insertable/updatable/deletable',
3977 proname => 'pg_relation_is_updatable', procost => '10', provolatile => 's',
3978 prorettype => 'int4', proargtypes => 'regclass bool',
3979 prosrc => 'pg_relation_is_updatable' },
3980 { oid => '3843', descr => 'is a column updatable',
3981 proname => 'pg_column_is_updatable', procost => '10', provolatile => 's',
3982 prorettype => 'bool', proargtypes => 'regclass int2 bool',
3983 prosrc => 'pg_column_is_updatable' },
3985 { oid => '6120', descr => 'oid of replica identity index if any',
3986 proname => 'pg_get_replica_identity_index', procost => '10',
3987 provolatile => 's', prorettype => 'regclass', proargtypes => 'regclass',
3988 prosrc => 'pg_get_replica_identity_index' },
3990 # Deferrable unique constraint trigger
3991 { oid => '1250', descr => 'deferred UNIQUE constraint check',
3992 proname => 'unique_key_recheck', provolatile => 'v', prorettype => 'trigger',
3993 proargtypes => '', prosrc => 'unique_key_recheck' },
3995 # Generic referential integrity constraint triggers
3996 { oid => '1644', descr => 'referential integrity FOREIGN KEY ... REFERENCES',
3997 proname => 'RI_FKey_check_ins', provolatile => 'v', prorettype => 'trigger',
3998 proargtypes => '', prosrc => 'RI_FKey_check_ins' },
3999 { oid => '1645', descr => 'referential integrity FOREIGN KEY ... REFERENCES',
4000 proname => 'RI_FKey_check_upd', provolatile => 'v', prorettype => 'trigger',
4001 proargtypes => '', prosrc => 'RI_FKey_check_upd' },
4002 { oid => '1646', descr => 'referential integrity ON DELETE CASCADE',
4003 proname => 'RI_FKey_cascade_del', provolatile => 'v', prorettype => 'trigger',
4004 proargtypes => '', prosrc => 'RI_FKey_cascade_del' },
4005 { oid => '1647', descr => 'referential integrity ON UPDATE CASCADE',
4006 proname => 'RI_FKey_cascade_upd', provolatile => 'v', prorettype => 'trigger',
4007 proargtypes => '', prosrc => 'RI_FKey_cascade_upd' },
4008 { oid => '1648', descr => 'referential integrity ON DELETE RESTRICT',
4009 proname => 'RI_FKey_restrict_del', provolatile => 'v',
4010 prorettype => 'trigger', proargtypes => '',
4011 prosrc => 'RI_FKey_restrict_del' },
4012 { oid => '1649', descr => 'referential integrity ON UPDATE RESTRICT',
4013 proname => 'RI_FKey_restrict_upd', provolatile => 'v',
4014 prorettype => 'trigger', proargtypes => '',
4015 prosrc => 'RI_FKey_restrict_upd' },
4016 { oid => '1650', descr => 'referential integrity ON DELETE SET NULL',
4017 proname => 'RI_FKey_setnull_del', provolatile => 'v', prorettype => 'trigger',
4018 proargtypes => '', prosrc => 'RI_FKey_setnull_del' },
4019 { oid => '1651', descr => 'referential integrity ON UPDATE SET NULL',
4020 proname => 'RI_FKey_setnull_upd', provolatile => 'v', prorettype => 'trigger',
4021 proargtypes => '', prosrc => 'RI_FKey_setnull_upd' },
4022 { oid => '1652', descr => 'referential integrity ON DELETE SET DEFAULT',
4023 proname => 'RI_FKey_setdefault_del', provolatile => 'v',
4024 prorettype => 'trigger', proargtypes => '',
4025 prosrc => 'RI_FKey_setdefault_del' },
4026 { oid => '1653', descr => 'referential integrity ON UPDATE SET DEFAULT',
4027 proname => 'RI_FKey_setdefault_upd', provolatile => 'v',
4028 prorettype => 'trigger', proargtypes => '',
4029 prosrc => 'RI_FKey_setdefault_upd' },
4030 { oid => '1654', descr => 'referential integrity ON DELETE NO ACTION',
4031 proname => 'RI_FKey_noaction_del', provolatile => 'v',
4032 prorettype => 'trigger', proargtypes => '',
4033 prosrc => 'RI_FKey_noaction_del' },
4034 { oid => '1655', descr => 'referential integrity ON UPDATE NO ACTION',
4035 proname => 'RI_FKey_noaction_upd', provolatile => 'v',
4036 prorettype => 'trigger', proargtypes => '',
4037 prosrc => 'RI_FKey_noaction_upd' },
4039 { oid => '1666',
4040 proname => 'varbiteq', proleakproof => 't', prorettype => 'bool',
4041 proargtypes => 'varbit varbit', prosrc => 'biteq' },
4042 { oid => '1667',
4043 proname => 'varbitne', proleakproof => 't', prorettype => 'bool',
4044 proargtypes => 'varbit varbit', prosrc => 'bitne' },
4045 { oid => '1668',
4046 proname => 'varbitge', proleakproof => 't', prorettype => 'bool',
4047 proargtypes => 'varbit varbit', prosrc => 'bitge' },
4048 { oid => '1669',
4049 proname => 'varbitgt', proleakproof => 't', prorettype => 'bool',
4050 proargtypes => 'varbit varbit', prosrc => 'bitgt' },
4051 { oid => '1670',
4052 proname => 'varbitle', proleakproof => 't', prorettype => 'bool',
4053 proargtypes => 'varbit varbit', prosrc => 'bitle' },
4054 { oid => '1671',
4055 proname => 'varbitlt', proleakproof => 't', prorettype => 'bool',
4056 proargtypes => 'varbit varbit', prosrc => 'bitlt' },
4057 { oid => '1672', descr => 'less-equal-greater',
4058 proname => 'varbitcmp', proleakproof => 't', prorettype => 'int4',
4059 proargtypes => 'varbit varbit', prosrc => 'bitcmp' },
4061 # avoid the C names bitand and bitor, since they are C++ keywords
4062 { oid => '1673',
4063 proname => 'bitand', prorettype => 'bit', proargtypes => 'bit bit',
4064 prosrc => 'bit_and' },
4065 { oid => '1674',
4066 proname => 'bitor', prorettype => 'bit', proargtypes => 'bit bit',
4067 prosrc => 'bit_or' },
4068 { oid => '1675',
4069 proname => 'bitxor', prorettype => 'bit', proargtypes => 'bit bit',
4070 prosrc => 'bitxor' },
4071 { oid => '1676',
4072 proname => 'bitnot', prorettype => 'bit', proargtypes => 'bit',
4073 prosrc => 'bitnot' },
4074 { oid => '1677',
4075 proname => 'bitshiftleft', prorettype => 'bit', proargtypes => 'bit int4',
4076 prosrc => 'bitshiftleft' },
4077 { oid => '1678',
4078 proname => 'bitshiftright', prorettype => 'bit', proargtypes => 'bit int4',
4079 prosrc => 'bitshiftright' },
4080 { oid => '1679',
4081 proname => 'bitcat', prorettype => 'varbit', proargtypes => 'varbit varbit',
4082 prosrc => 'bitcat' },
4083 { oid => '1680', descr => 'extract portion of bitstring',
4084 proname => 'substring', prorettype => 'bit', proargtypes => 'bit int4 int4',
4085 prosrc => 'bitsubstr' },
4086 { oid => '1681', descr => 'bitstring length',
4087 proname => 'length', prorettype => 'int4', proargtypes => 'bit',
4088 prosrc => 'bitlength' },
4089 { oid => '1682', descr => 'octet length',
4090 proname => 'octet_length', prorettype => 'int4', proargtypes => 'bit',
4091 prosrc => 'bitoctetlength' },
4092 { oid => '1683', descr => 'convert int4 to bitstring',
4093 proname => 'bit', prorettype => 'bit', proargtypes => 'int4 int4',
4094 prosrc => 'bitfromint4' },
4095 { oid => '1684', descr => 'convert bitstring to int4',
4096 proname => 'int4', prorettype => 'int4', proargtypes => 'bit',
4097 prosrc => 'bittoint4' },
4099 { oid => '1685', descr => 'adjust bit() to typmod length',
4100 proname => 'bit', prorettype => 'bit', proargtypes => 'bit int4 bool',
4101 prosrc => 'bit' },
4102 { oid => '3158', descr => 'planner support for varbit length coercion',
4103 proname => 'varbit_support', prorettype => 'internal',
4104 proargtypes => 'internal', prosrc => 'varbit_support' },
4105 { oid => '1687', descr => 'adjust varbit() to typmod length',
4106 proname => 'varbit', prosupport => 'varbit_support', prorettype => 'varbit',
4107 proargtypes => 'varbit int4 bool', prosrc => 'varbit' },
4109 { oid => '1698', descr => 'position of sub-bitstring',
4110 proname => 'position', prorettype => 'int4', proargtypes => 'bit bit',
4111 prosrc => 'bitposition' },
4112 { oid => '1699', descr => 'extract portion of bitstring',
4113 proname => 'substring', prorettype => 'bit', proargtypes => 'bit int4',
4114 prosrc => 'bitsubstr_no_len' },
4116 { oid => '3030', descr => 'substitute portion of bitstring',
4117 proname => 'overlay', prorettype => 'bit', proargtypes => 'bit bit int4 int4',
4118 prosrc => 'bitoverlay' },
4119 { oid => '3031', descr => 'substitute portion of bitstring',
4120 proname => 'overlay', prorettype => 'bit', proargtypes => 'bit bit int4',
4121 prosrc => 'bitoverlay_no_len' },
4122 { oid => '3032', descr => 'get bit',
4123 proname => 'get_bit', prorettype => 'int4', proargtypes => 'bit int4',
4124 prosrc => 'bitgetbit' },
4125 { oid => '3033', descr => 'set bit',
4126 proname => 'set_bit', prorettype => 'bit', proargtypes => 'bit int4 int4',
4127 prosrc => 'bitsetbit' },
4128 { oid => '6162', descr => 'number of set bits',
4129 proname => 'bit_count', prorettype => 'int8', proargtypes => 'bit',
4130 prosrc => 'bit_bit_count' },
4132 # for macaddr type support
4133 { oid => '436', descr => 'I/O',
4134 proname => 'macaddr_in', prorettype => 'macaddr', proargtypes => 'cstring',
4135 prosrc => 'macaddr_in' },
4136 { oid => '437', descr => 'I/O',
4137 proname => 'macaddr_out', prorettype => 'cstring', proargtypes => 'macaddr',
4138 prosrc => 'macaddr_out' },
4140 { oid => '753', descr => 'MACADDR manufacturer fields',
4141 proname => 'trunc', prorettype => 'macaddr', proargtypes => 'macaddr',
4142 prosrc => 'macaddr_trunc' },
4144 { oid => '830',
4145 proname => 'macaddr_eq', proleakproof => 't', prorettype => 'bool',
4146 proargtypes => 'macaddr macaddr', prosrc => 'macaddr_eq' },
4147 { oid => '831',
4148 proname => 'macaddr_lt', proleakproof => 't', prorettype => 'bool',
4149 proargtypes => 'macaddr macaddr', prosrc => 'macaddr_lt' },
4150 { oid => '832',
4151 proname => 'macaddr_le', proleakproof => 't', prorettype => 'bool',
4152 proargtypes => 'macaddr macaddr', prosrc => 'macaddr_le' },
4153 { oid => '833',
4154 proname => 'macaddr_gt', proleakproof => 't', prorettype => 'bool',
4155 proargtypes => 'macaddr macaddr', prosrc => 'macaddr_gt' },
4156 { oid => '834',
4157 proname => 'macaddr_ge', proleakproof => 't', prorettype => 'bool',
4158 proargtypes => 'macaddr macaddr', prosrc => 'macaddr_ge' },
4159 { oid => '835',
4160 proname => 'macaddr_ne', proleakproof => 't', prorettype => 'bool',
4161 proargtypes => 'macaddr macaddr', prosrc => 'macaddr_ne' },
4162 { oid => '836', descr => 'less-equal-greater',
4163 proname => 'macaddr_cmp', proleakproof => 't', prorettype => 'int4',
4164 proargtypes => 'macaddr macaddr', prosrc => 'macaddr_cmp' },
4165 { oid => '3144',
4166 proname => 'macaddr_not', prorettype => 'macaddr', proargtypes => 'macaddr',
4167 prosrc => 'macaddr_not' },
4168 { oid => '3145',
4169 proname => 'macaddr_and', prorettype => 'macaddr',
4170 proargtypes => 'macaddr macaddr', prosrc => 'macaddr_and' },
4171 { oid => '3146',
4172 proname => 'macaddr_or', prorettype => 'macaddr',
4173 proargtypes => 'macaddr macaddr', prosrc => 'macaddr_or' },
4174 { oid => '3359', descr => 'sort support',
4175 proname => 'macaddr_sortsupport', prorettype => 'void',
4176 proargtypes => 'internal', prosrc => 'macaddr_sortsupport' },
4178 # for macaddr8 type support
4179 { oid => '4110', descr => 'I/O',
4180 proname => 'macaddr8_in', prorettype => 'macaddr8', proargtypes => 'cstring',
4181 prosrc => 'macaddr8_in' },
4182 { oid => '4111', descr => 'I/O',
4183 proname => 'macaddr8_out', prorettype => 'cstring', proargtypes => 'macaddr8',
4184 prosrc => 'macaddr8_out' },
4186 { oid => '4112', descr => 'MACADDR8 manufacturer fields',
4187 proname => 'trunc', prorettype => 'macaddr8', proargtypes => 'macaddr8',
4188 prosrc => 'macaddr8_trunc' },
4190 { oid => '4113',
4191 proname => 'macaddr8_eq', proleakproof => 't', prorettype => 'bool',
4192 proargtypes => 'macaddr8 macaddr8', prosrc => 'macaddr8_eq' },
4193 { oid => '4114',
4194 proname => 'macaddr8_lt', proleakproof => 't', prorettype => 'bool',
4195 proargtypes => 'macaddr8 macaddr8', prosrc => 'macaddr8_lt' },
4196 { oid => '4115',
4197 proname => 'macaddr8_le', proleakproof => 't', prorettype => 'bool',
4198 proargtypes => 'macaddr8 macaddr8', prosrc => 'macaddr8_le' },
4199 { oid => '4116',
4200 proname => 'macaddr8_gt', proleakproof => 't', prorettype => 'bool',
4201 proargtypes => 'macaddr8 macaddr8', prosrc => 'macaddr8_gt' },
4202 { oid => '4117',
4203 proname => 'macaddr8_ge', proleakproof => 't', prorettype => 'bool',
4204 proargtypes => 'macaddr8 macaddr8', prosrc => 'macaddr8_ge' },
4205 { oid => '4118',
4206 proname => 'macaddr8_ne', proleakproof => 't', prorettype => 'bool',
4207 proargtypes => 'macaddr8 macaddr8', prosrc => 'macaddr8_ne' },
4208 { oid => '4119', descr => 'less-equal-greater',
4209 proname => 'macaddr8_cmp', proleakproof => 't', prorettype => 'int4',
4210 proargtypes => 'macaddr8 macaddr8', prosrc => 'macaddr8_cmp' },
4211 { oid => '4120',
4212 proname => 'macaddr8_not', prorettype => 'macaddr8',
4213 proargtypes => 'macaddr8', prosrc => 'macaddr8_not' },
4214 { oid => '4121',
4215 proname => 'macaddr8_and', prorettype => 'macaddr8',
4216 proargtypes => 'macaddr8 macaddr8', prosrc => 'macaddr8_and' },
4217 { oid => '4122',
4218 proname => 'macaddr8_or', prorettype => 'macaddr8',
4219 proargtypes => 'macaddr8 macaddr8', prosrc => 'macaddr8_or' },
4220 { oid => '4123', descr => 'convert macaddr to macaddr8',
4221 proname => 'macaddr8', proleakproof => 't', prorettype => 'macaddr8',
4222 proargtypes => 'macaddr', prosrc => 'macaddrtomacaddr8' },
4223 { oid => '4124', descr => 'convert macaddr8 to macaddr',
4224 proname => 'macaddr', prorettype => 'macaddr', proargtypes => 'macaddr8',
4225 prosrc => 'macaddr8tomacaddr' },
4226 { oid => '4125', descr => 'set 7th bit in macaddr8',
4227 proname => 'macaddr8_set7bit', prorettype => 'macaddr8',
4228 proargtypes => 'macaddr8', prosrc => 'macaddr8_set7bit' },
4230 # for inet type support
4231 { oid => '910', descr => 'I/O',
4232 proname => 'inet_in', prorettype => 'inet', proargtypes => 'cstring',
4233 prosrc => 'inet_in' },
4234 { oid => '911', descr => 'I/O',
4235 proname => 'inet_out', prorettype => 'cstring', proargtypes => 'inet',
4236 prosrc => 'inet_out' },
4238 # for cidr type support
4239 { oid => '1267', descr => 'I/O',
4240 proname => 'cidr_in', prorettype => 'cidr', proargtypes => 'cstring',
4241 prosrc => 'cidr_in' },
4242 { oid => '1427', descr => 'I/O',
4243 proname => 'cidr_out', prorettype => 'cstring', proargtypes => 'cidr',
4244 prosrc => 'cidr_out' },
4246 # these are used for both inet and cidr
4247 { oid => '920',
4248 proname => 'network_eq', proleakproof => 't', prorettype => 'bool',
4249 proargtypes => 'inet inet', prosrc => 'network_eq' },
4250 { oid => '921',
4251 proname => 'network_lt', proleakproof => 't', prorettype => 'bool',
4252 proargtypes => 'inet inet', prosrc => 'network_lt' },
4253 { oid => '922',
4254 proname => 'network_le', proleakproof => 't', prorettype => 'bool',
4255 proargtypes => 'inet inet', prosrc => 'network_le' },
4256 { oid => '923',
4257 proname => 'network_gt', proleakproof => 't', prorettype => 'bool',
4258 proargtypes => 'inet inet', prosrc => 'network_gt' },
4259 { oid => '924',
4260 proname => 'network_ge', proleakproof => 't', prorettype => 'bool',
4261 proargtypes => 'inet inet', prosrc => 'network_ge' },
4262 { oid => '925',
4263 proname => 'network_ne', proleakproof => 't', prorettype => 'bool',
4264 proargtypes => 'inet inet', prosrc => 'network_ne' },
4265 { oid => '3562', descr => 'larger of two',
4266 proname => 'network_larger', prorettype => 'inet', proargtypes => 'inet inet',
4267 prosrc => 'network_larger' },
4268 { oid => '3563', descr => 'smaller of two',
4269 proname => 'network_smaller', prorettype => 'inet',
4270 proargtypes => 'inet inet', prosrc => 'network_smaller' },
4271 { oid => '926', descr => 'less-equal-greater',
4272 proname => 'network_cmp', proleakproof => 't', prorettype => 'int4',
4273 proargtypes => 'inet inet', prosrc => 'network_cmp' },
4274 { oid => '927',
4275 proname => 'network_sub', prosupport => 'network_subset_support',
4276 prorettype => 'bool', proargtypes => 'inet inet', prosrc => 'network_sub' },
4277 { oid => '928',
4278 proname => 'network_subeq', prosupport => 'network_subset_support',
4279 prorettype => 'bool', proargtypes => 'inet inet', prosrc => 'network_subeq' },
4280 { oid => '929',
4281 proname => 'network_sup', prosupport => 'network_subset_support',
4282 prorettype => 'bool', proargtypes => 'inet inet', prosrc => 'network_sup' },
4283 { oid => '930',
4284 proname => 'network_supeq', prosupport => 'network_subset_support',
4285 prorettype => 'bool', proargtypes => 'inet inet', prosrc => 'network_supeq' },
4286 { oid => '1173', descr => 'planner support for network_sub/superset',
4287 proname => 'network_subset_support', prorettype => 'internal',
4288 proargtypes => 'internal', prosrc => 'network_subset_support' },
4290 { oid => '3551',
4291 proname => 'network_overlap', prorettype => 'bool',
4292 proargtypes => 'inet inet', prosrc => 'network_overlap' },
4293 { oid => '5033', descr => 'sort support',
4294 proname => 'network_sortsupport', prorettype => 'void',
4295 proargtypes => 'internal', prosrc => 'network_sortsupport' },
4297 # inet/cidr functions
4298 { oid => '598', descr => 'abbreviated display of inet value',
4299 proname => 'abbrev', prorettype => 'text', proargtypes => 'inet',
4300 prosrc => 'inet_abbrev' },
4301 { oid => '599', descr => 'abbreviated display of cidr value',
4302 proname => 'abbrev', prorettype => 'text', proargtypes => 'cidr',
4303 prosrc => 'cidr_abbrev' },
4304 { oid => '605', descr => 'change netmask of inet',
4305 proname => 'set_masklen', prorettype => 'inet', proargtypes => 'inet int4',
4306 prosrc => 'inet_set_masklen' },
4307 { oid => '635', descr => 'change netmask of cidr',
4308 proname => 'set_masklen', prorettype => 'cidr', proargtypes => 'cidr int4',
4309 prosrc => 'cidr_set_masklen' },
4310 { oid => '711', descr => 'address family (4 for IPv4, 6 for IPv6)',
4311 proname => 'family', prorettype => 'int4', proargtypes => 'inet',
4312 prosrc => 'network_family' },
4313 { oid => '683', descr => 'network part of address',
4314 proname => 'network', prorettype => 'cidr', proargtypes => 'inet',
4315 prosrc => 'network_network' },
4316 { oid => '696', descr => 'netmask of address',
4317 proname => 'netmask', prorettype => 'inet', proargtypes => 'inet',
4318 prosrc => 'network_netmask' },
4319 { oid => '697', descr => 'netmask length',
4320 proname => 'masklen', prorettype => 'int4', proargtypes => 'inet',
4321 prosrc => 'network_masklen' },
4322 { oid => '698', descr => 'broadcast address of network',
4323 proname => 'broadcast', prorettype => 'inet', proargtypes => 'inet',
4324 prosrc => 'network_broadcast' },
4325 { oid => '699', descr => 'show address octets only',
4326 proname => 'host', prorettype => 'text', proargtypes => 'inet',
4327 prosrc => 'network_host' },
4328 { oid => '730', descr => 'show all parts of inet/cidr value',
4329 proname => 'text', prorettype => 'text', proargtypes => 'inet',
4330 prosrc => 'network_show' },
4331 { oid => '1362', descr => 'hostmask of address',
4332 proname => 'hostmask', prorettype => 'inet', proargtypes => 'inet',
4333 prosrc => 'network_hostmask' },
4334 { oid => '1715', descr => 'convert inet to cidr',
4335 proname => 'cidr', prorettype => 'cidr', proargtypes => 'inet',
4336 prosrc => 'inet_to_cidr' },
4338 { oid => '2196', descr => 'inet address of the client',
4339 proname => 'inet_client_addr', proisstrict => 'f', provolatile => 's',
4340 proparallel => 'r', prorettype => 'inet', proargtypes => '',
4341 prosrc => 'inet_client_addr' },
4342 { oid => '2197', descr => 'client\'s port number for this connection',
4343 proname => 'inet_client_port', proisstrict => 'f', provolatile => 's',
4344 proparallel => 'r', prorettype => 'int4', proargtypes => '',
4345 prosrc => 'inet_client_port' },
4346 { oid => '2198', descr => 'inet address of the server',
4347 proname => 'inet_server_addr', proisstrict => 'f', provolatile => 's',
4348 proparallel => 'r', prorettype => 'inet', proargtypes => '',
4349 prosrc => 'inet_server_addr' },
4350 { oid => '2199', descr => 'server\'s port number for this connection',
4351 proname => 'inet_server_port', proisstrict => 'f', provolatile => 's',
4352 proparallel => 'r', prorettype => 'int4', proargtypes => '',
4353 prosrc => 'inet_server_port' },
4355 { oid => '2627',
4356 proname => 'inetnot', prorettype => 'inet', proargtypes => 'inet',
4357 prosrc => 'inetnot' },
4358 { oid => '2628',
4359 proname => 'inetand', prorettype => 'inet', proargtypes => 'inet inet',
4360 prosrc => 'inetand' },
4361 { oid => '2629',
4362 proname => 'inetor', prorettype => 'inet', proargtypes => 'inet inet',
4363 prosrc => 'inetor' },
4364 { oid => '2630',
4365 proname => 'inetpl', prorettype => 'inet', proargtypes => 'inet int8',
4366 prosrc => 'inetpl' },
4367 { oid => '2631',
4368 proname => 'int8pl_inet', prolang => 'sql', prorettype => 'inet',
4369 proargtypes => 'int8 inet', prosrc => 'see system_functions.sql' },
4370 { oid => '2632',
4371 proname => 'inetmi_int8', prorettype => 'inet', proargtypes => 'inet int8',
4372 prosrc => 'inetmi_int8' },
4373 { oid => '2633',
4374 proname => 'inetmi', prorettype => 'int8', proargtypes => 'inet inet',
4375 prosrc => 'inetmi' },
4376 { oid => '4071', descr => 'are the addresses from the same family?',
4377 proname => 'inet_same_family', prorettype => 'bool',
4378 proargtypes => 'inet inet', prosrc => 'inet_same_family' },
4379 { oid => '4063',
4380 descr => 'the smallest network which includes both of the given networks',
4381 proname => 'inet_merge', prorettype => 'cidr', proargtypes => 'inet inet',
4382 prosrc => 'inet_merge' },
4384 # GiST support for inet and cidr
4385 { oid => '3553', descr => 'GiST support',
4386 proname => 'inet_gist_consistent', prorettype => 'bool',
4387 proargtypes => 'internal inet int2 oid internal',
4388 prosrc => 'inet_gist_consistent' },
4389 { oid => '3554', descr => 'GiST support',
4390 proname => 'inet_gist_union', prorettype => 'inet',
4391 proargtypes => 'internal internal', prosrc => 'inet_gist_union' },
4392 { oid => '3555', descr => 'GiST support',
4393 proname => 'inet_gist_compress', prorettype => 'internal',
4394 proargtypes => 'internal', prosrc => 'inet_gist_compress' },
4395 { oid => '3573', descr => 'GiST support',
4396 proname => 'inet_gist_fetch', prorettype => 'internal',
4397 proargtypes => 'internal', prosrc => 'inet_gist_fetch' },
4398 { oid => '3557', descr => 'GiST support',
4399 proname => 'inet_gist_penalty', prorettype => 'internal',
4400 proargtypes => 'internal internal internal', prosrc => 'inet_gist_penalty' },
4401 { oid => '3558', descr => 'GiST support',
4402 proname => 'inet_gist_picksplit', prorettype => 'internal',
4403 proargtypes => 'internal internal', prosrc => 'inet_gist_picksplit' },
4404 { oid => '3559', descr => 'GiST support',
4405 proname => 'inet_gist_same', prorettype => 'internal',
4406 proargtypes => 'inet inet internal', prosrc => 'inet_gist_same' },
4408 # SP-GiST support for inet and cidr
4409 { oid => '3795', descr => 'SP-GiST support',
4410 proname => 'inet_spg_config', prorettype => 'void',
4411 proargtypes => 'internal internal', prosrc => 'inet_spg_config' },
4412 { oid => '3796', descr => 'SP-GiST support',
4413 proname => 'inet_spg_choose', prorettype => 'void',
4414 proargtypes => 'internal internal', prosrc => 'inet_spg_choose' },
4415 { oid => '3797', descr => 'SP-GiST support',
4416 proname => 'inet_spg_picksplit', prorettype => 'void',
4417 proargtypes => 'internal internal', prosrc => 'inet_spg_picksplit' },
4418 { oid => '3798', descr => 'SP-GiST support',
4419 proname => 'inet_spg_inner_consistent', prorettype => 'void',
4420 proargtypes => 'internal internal', prosrc => 'inet_spg_inner_consistent' },
4421 { oid => '3799', descr => 'SP-GiST support',
4422 proname => 'inet_spg_leaf_consistent', prorettype => 'bool',
4423 proargtypes => 'internal internal', prosrc => 'inet_spg_leaf_consistent' },
4425 # Selectivity estimation for inet and cidr
4426 { oid => '3560', descr => 'restriction selectivity for network operators',
4427 proname => 'networksel', provolatile => 's', prorettype => 'float8',
4428 proargtypes => 'internal oid internal int4', prosrc => 'networksel' },
4429 { oid => '3561', descr => 'join selectivity for network operators',
4430 proname => 'networkjoinsel', provolatile => 's', prorettype => 'float8',
4431 proargtypes => 'internal oid internal int2 internal',
4432 prosrc => 'networkjoinsel' },
4434 { oid => '1690',
4435 proname => 'time_mi_time', prorettype => 'interval',
4436 proargtypes => 'time time', prosrc => 'time_mi_time' },
4438 { oid => '1691',
4439 proname => 'boolle', proleakproof => 't', prorettype => 'bool',
4440 proargtypes => 'bool bool', prosrc => 'boolle' },
4441 { oid => '1692',
4442 proname => 'boolge', proleakproof => 't', prorettype => 'bool',
4443 proargtypes => 'bool bool', prosrc => 'boolge' },
4444 { oid => '1693', descr => 'less-equal-greater',
4445 proname => 'btboolcmp', proleakproof => 't', prorettype => 'int4',
4446 proargtypes => 'bool bool', prosrc => 'btboolcmp' },
4448 { oid => '1688', descr => 'hash',
4449 proname => 'time_hash', prorettype => 'int4', proargtypes => 'time',
4450 prosrc => 'time_hash' },
4451 { oid => '3409', descr => 'hash',
4452 proname => 'time_hash_extended', prorettype => 'int8',
4453 proargtypes => 'time int8', prosrc => 'time_hash_extended' },
4454 { oid => '1696', descr => 'hash',
4455 proname => 'timetz_hash', prorettype => 'int4', proargtypes => 'timetz',
4456 prosrc => 'timetz_hash' },
4457 { oid => '3410', descr => 'hash',
4458 proname => 'timetz_hash_extended', prorettype => 'int8',
4459 proargtypes => 'timetz int8', prosrc => 'timetz_hash_extended' },
4460 { oid => '1697', descr => 'hash',
4461 proname => 'interval_hash', prorettype => 'int4', proargtypes => 'interval',
4462 prosrc => 'interval_hash' },
4463 { oid => '3418', descr => 'hash',
4464 proname => 'interval_hash_extended', prorettype => 'int8',
4465 proargtypes => 'interval int8', prosrc => 'interval_hash_extended' },
4467 # OID's 1700 - 1799 NUMERIC data type
4469 { oid => '1701', descr => 'I/O',
4470 proname => 'numeric_in', prorettype => 'numeric',
4471 proargtypes => 'cstring oid int4', prosrc => 'numeric_in' },
4472 { oid => '1702', descr => 'I/O',
4473 proname => 'numeric_out', prorettype => 'cstring', proargtypes => 'numeric',
4474 prosrc => 'numeric_out' },
4475 { oid => '2917', descr => 'I/O typmod',
4476 proname => 'numerictypmodin', prorettype => 'int4', proargtypes => '_cstring',
4477 prosrc => 'numerictypmodin' },
4478 { oid => '2918', descr => 'I/O typmod',
4479 proname => 'numerictypmodout', prorettype => 'cstring', proargtypes => 'int4',
4480 prosrc => 'numerictypmodout' },
4481 { oid => '3157', descr => 'planner support for numeric length coercion',
4482 proname => 'numeric_support', prorettype => 'internal',
4483 proargtypes => 'internal', prosrc => 'numeric_support' },
4484 { oid => '1703', descr => 'adjust numeric to typmod precision/scale',
4485 proname => 'numeric', prosupport => 'numeric_support',
4486 prorettype => 'numeric', proargtypes => 'numeric int4', prosrc => 'numeric' },
4487 { oid => '1704',
4488 proname => 'numeric_abs', prorettype => 'numeric', proargtypes => 'numeric',
4489 prosrc => 'numeric_abs' },
4490 { oid => '1705', descr => 'absolute value',
4491 proname => 'abs', prorettype => 'numeric', proargtypes => 'numeric',
4492 prosrc => 'numeric_abs' },
4493 { oid => '1706', descr => 'sign of value',
4494 proname => 'sign', prorettype => 'numeric', proargtypes => 'numeric',
4495 prosrc => 'numeric_sign' },
4496 { oid => '1707', descr => 'value rounded to \'scale\'',
4497 proname => 'round', prorettype => 'numeric', proargtypes => 'numeric int4',
4498 prosrc => 'numeric_round' },
4499 { oid => '1708', descr => 'value rounded to \'scale\' of zero',
4500 proname => 'round', prolang => 'sql', prorettype => 'numeric',
4501 proargtypes => 'numeric', prosrc => 'see system_functions.sql' },
4502 { oid => '1709', descr => 'value truncated to \'scale\'',
4503 proname => 'trunc', prorettype => 'numeric', proargtypes => 'numeric int4',
4504 prosrc => 'numeric_trunc' },
4505 { oid => '1710', descr => 'value truncated to \'scale\' of zero',
4506 proname => 'trunc', prolang => 'sql', prorettype => 'numeric',
4507 proargtypes => 'numeric', prosrc => 'see system_functions.sql' },
4508 { oid => '1711', descr => 'nearest integer >= value',
4509 proname => 'ceil', prorettype => 'numeric', proargtypes => 'numeric',
4510 prosrc => 'numeric_ceil' },
4511 { oid => '2167', descr => 'nearest integer >= value',
4512 proname => 'ceiling', prorettype => 'numeric', proargtypes => 'numeric',
4513 prosrc => 'numeric_ceil' },
4514 { oid => '1712', descr => 'nearest integer <= value',
4515 proname => 'floor', prorettype => 'numeric', proargtypes => 'numeric',
4516 prosrc => 'numeric_floor' },
4517 { oid => '1718',
4518 proname => 'numeric_eq', prorettype => 'bool',
4519 proargtypes => 'numeric numeric', prosrc => 'numeric_eq' },
4520 { oid => '1719',
4521 proname => 'numeric_ne', prorettype => 'bool',
4522 proargtypes => 'numeric numeric', prosrc => 'numeric_ne' },
4523 { oid => '1720',
4524 proname => 'numeric_gt', prorettype => 'bool',
4525 proargtypes => 'numeric numeric', prosrc => 'numeric_gt' },
4526 { oid => '1721',
4527 proname => 'numeric_ge', prorettype => 'bool',
4528 proargtypes => 'numeric numeric', prosrc => 'numeric_ge' },
4529 { oid => '1722',
4530 proname => 'numeric_lt', prorettype => 'bool',
4531 proargtypes => 'numeric numeric', prosrc => 'numeric_lt' },
4532 { oid => '1723',
4533 proname => 'numeric_le', prorettype => 'bool',
4534 proargtypes => 'numeric numeric', prosrc => 'numeric_le' },
4535 { oid => '1724',
4536 proname => 'numeric_add', prorettype => 'numeric',
4537 proargtypes => 'numeric numeric', prosrc => 'numeric_add' },
4538 { oid => '1725',
4539 proname => 'numeric_sub', prorettype => 'numeric',
4540 proargtypes => 'numeric numeric', prosrc => 'numeric_sub' },
4541 { oid => '1726',
4542 proname => 'numeric_mul', prorettype => 'numeric',
4543 proargtypes => 'numeric numeric', prosrc => 'numeric_mul' },
4544 { oid => '1727',
4545 proname => 'numeric_div', prorettype => 'numeric',
4546 proargtypes => 'numeric numeric', prosrc => 'numeric_div' },
4547 { oid => '1728', descr => 'modulus',
4548 proname => 'mod', prorettype => 'numeric', proargtypes => 'numeric numeric',
4549 prosrc => 'numeric_mod' },
4550 { oid => '1729',
4551 proname => 'numeric_mod', prorettype => 'numeric',
4552 proargtypes => 'numeric numeric', prosrc => 'numeric_mod' },
4553 { oid => '5048', descr => 'greatest common divisor',
4554 proname => 'gcd', prorettype => 'numeric', proargtypes => 'numeric numeric',
4555 prosrc => 'numeric_gcd' },
4556 { oid => '5049', descr => 'least common multiple',
4557 proname => 'lcm', prorettype => 'numeric', proargtypes => 'numeric numeric',
4558 prosrc => 'numeric_lcm' },
4559 { oid => '1730', descr => 'square root',
4560 proname => 'sqrt', prorettype => 'numeric', proargtypes => 'numeric',
4561 prosrc => 'numeric_sqrt' },
4562 { oid => '1731', descr => 'square root',
4563 proname => 'numeric_sqrt', prorettype => 'numeric', proargtypes => 'numeric',
4564 prosrc => 'numeric_sqrt' },
4565 { oid => '1732', descr => 'natural exponential (e^x)',
4566 proname => 'exp', prorettype => 'numeric', proargtypes => 'numeric',
4567 prosrc => 'numeric_exp' },
4568 { oid => '1733', descr => 'natural exponential (e^x)',
4569 proname => 'numeric_exp', prorettype => 'numeric', proargtypes => 'numeric',
4570 prosrc => 'numeric_exp' },
4571 { oid => '1734', descr => 'natural logarithm',
4572 proname => 'ln', prorettype => 'numeric', proargtypes => 'numeric',
4573 prosrc => 'numeric_ln' },
4574 { oid => '1735', descr => 'natural logarithm',
4575 proname => 'numeric_ln', prorettype => 'numeric', proargtypes => 'numeric',
4576 prosrc => 'numeric_ln' },
4577 { oid => '1736', descr => 'logarithm base m of n',
4578 proname => 'log', prorettype => 'numeric', proargtypes => 'numeric numeric',
4579 prosrc => 'numeric_log' },
4580 { oid => '1737', descr => 'logarithm base m of n',
4581 proname => 'numeric_log', prorettype => 'numeric',
4582 proargtypes => 'numeric numeric', prosrc => 'numeric_log' },
4583 { oid => '1738', descr => 'exponentiation',
4584 proname => 'pow', prorettype => 'numeric', proargtypes => 'numeric numeric',
4585 prosrc => 'numeric_power' },
4586 { oid => '2169', descr => 'exponentiation',
4587 proname => 'power', prorettype => 'numeric', proargtypes => 'numeric numeric',
4588 prosrc => 'numeric_power' },
4589 { oid => '1739',
4590 proname => 'numeric_power', prorettype => 'numeric',
4591 proargtypes => 'numeric numeric', prosrc => 'numeric_power' },
4592 { oid => '3281', descr => 'number of decimal digits in the fractional part',
4593 proname => 'scale', prorettype => 'int4', proargtypes => 'numeric',
4594 prosrc => 'numeric_scale' },
4595 { oid => '5042', descr => 'minimum scale needed to represent the value',
4596 proname => 'min_scale', prorettype => 'int4', proargtypes => 'numeric',
4597 prosrc => 'numeric_min_scale' },
4598 { oid => '5043',
4599 descr => 'numeric with minimum scale needed to represent the value',
4600 proname => 'trim_scale', prorettype => 'numeric', proargtypes => 'numeric',
4601 prosrc => 'numeric_trim_scale' },
4602 { oid => '1740', descr => 'convert int4 to numeric',
4603 proname => 'numeric', proleakproof => 't', prorettype => 'numeric',
4604 proargtypes => 'int4', prosrc => 'int4_numeric' },
4605 { oid => '1741', descr => 'base 10 logarithm',
4606 proname => 'log', prolang => 'sql', prorettype => 'numeric',
4607 proargtypes => 'numeric', prosrc => 'see system_functions.sql' },
4608 { oid => '1481', descr => 'base 10 logarithm',
4609 proname => 'log10', prolang => 'sql', prorettype => 'numeric',
4610 proargtypes => 'numeric', prosrc => 'see system_functions.sql' },
4611 { oid => '1742', descr => 'convert float4 to numeric',
4612 proname => 'numeric', proleakproof => 't', prorettype => 'numeric',
4613 proargtypes => 'float4', prosrc => 'float4_numeric' },
4614 { oid => '1743', descr => 'convert float8 to numeric',
4615 proname => 'numeric', proleakproof => 't', prorettype => 'numeric',
4616 proargtypes => 'float8', prosrc => 'float8_numeric' },
4617 { oid => '1744', descr => 'convert numeric to int4',
4618 proname => 'int4', prorettype => 'int4', proargtypes => 'numeric',
4619 prosrc => 'numeric_int4' },
4620 { oid => '1745', descr => 'convert numeric to float4',
4621 proname => 'float4', prorettype => 'float4', proargtypes => 'numeric',
4622 prosrc => 'numeric_float4' },
4623 { oid => '1746', descr => 'convert numeric to float8',
4624 proname => 'float8', prorettype => 'float8', proargtypes => 'numeric',
4625 prosrc => 'numeric_float8' },
4626 { oid => '1973', descr => 'trunc(x/y)',
4627 proname => 'div', prorettype => 'numeric', proargtypes => 'numeric numeric',
4628 prosrc => 'numeric_div_trunc' },
4629 { oid => '1980', descr => 'trunc(x/y)',
4630 proname => 'numeric_div_trunc', prorettype => 'numeric',
4631 proargtypes => 'numeric numeric', prosrc => 'numeric_div_trunc' },
4632 { oid => '2170', descr => 'bucket number of operand in equal-width histogram',
4633 proname => 'width_bucket', prorettype => 'int4',
4634 proargtypes => 'numeric numeric numeric int4',
4635 prosrc => 'width_bucket_numeric' },
4637 { oid => '1747',
4638 proname => 'time_pl_interval', prorettype => 'time',
4639 proargtypes => 'time interval', prosrc => 'time_pl_interval' },
4640 { oid => '1748',
4641 proname => 'time_mi_interval', prorettype => 'time',
4642 proargtypes => 'time interval', prosrc => 'time_mi_interval' },
4643 { oid => '1749',
4644 proname => 'timetz_pl_interval', prorettype => 'timetz',
4645 proargtypes => 'timetz interval', prosrc => 'timetz_pl_interval' },
4646 { oid => '1750',
4647 proname => 'timetz_mi_interval', prorettype => 'timetz',
4648 proargtypes => 'timetz interval', prosrc => 'timetz_mi_interval' },
4650 { oid => '1764', descr => 'increment by one',
4651 proname => 'numeric_inc', prorettype => 'numeric', proargtypes => 'numeric',
4652 prosrc => 'numeric_inc' },
4653 { oid => '1766', descr => 'smaller of two',
4654 proname => 'numeric_smaller', prorettype => 'numeric',
4655 proargtypes => 'numeric numeric', prosrc => 'numeric_smaller' },
4656 { oid => '1767', descr => 'larger of two',
4657 proname => 'numeric_larger', prorettype => 'numeric',
4658 proargtypes => 'numeric numeric', prosrc => 'numeric_larger' },
4659 { oid => '1769', descr => 'less-equal-greater',
4660 proname => 'numeric_cmp', prorettype => 'int4',
4661 proargtypes => 'numeric numeric', prosrc => 'numeric_cmp' },
4662 { oid => '3283', descr => 'sort support',
4663 proname => 'numeric_sortsupport', prorettype => 'void',
4664 proargtypes => 'internal', prosrc => 'numeric_sortsupport' },
4665 { oid => '1771',
4666 proname => 'numeric_uminus', prorettype => 'numeric',
4667 proargtypes => 'numeric', prosrc => 'numeric_uminus' },
4668 { oid => '1779', descr => 'convert numeric to int8',
4669 proname => 'int8', prorettype => 'int8', proargtypes => 'numeric',
4670 prosrc => 'numeric_int8' },
4671 { oid => '1781', descr => 'convert int8 to numeric',
4672 proname => 'numeric', proleakproof => 't', prorettype => 'numeric',
4673 proargtypes => 'int8', prosrc => 'int8_numeric' },
4674 { oid => '1782', descr => 'convert int2 to numeric',
4675 proname => 'numeric', proleakproof => 't', prorettype => 'numeric',
4676 proargtypes => 'int2', prosrc => 'int2_numeric' },
4677 { oid => '1783', descr => 'convert numeric to int2',
4678 proname => 'int2', prorettype => 'int2', proargtypes => 'numeric',
4679 prosrc => 'numeric_int2' },
4680 { oid => '6103', descr => 'convert numeric to pg_lsn',
4681 proname => 'pg_lsn', prorettype => 'pg_lsn', proargtypes => 'numeric',
4682 prosrc => 'numeric_pg_lsn' },
4684 { oid => '3556', descr => 'convert jsonb to boolean',
4685 proname => 'bool', prorettype => 'bool', proargtypes => 'jsonb',
4686 prosrc => 'jsonb_bool' },
4687 { oid => '3449', descr => 'convert jsonb to numeric',
4688 proname => 'numeric', prorettype => 'numeric', proargtypes => 'jsonb',
4689 prosrc => 'jsonb_numeric' },
4690 { oid => '3450', descr => 'convert jsonb to int2',
4691 proname => 'int2', prorettype => 'int2', proargtypes => 'jsonb',
4692 prosrc => 'jsonb_int2' },
4693 { oid => '3451', descr => 'convert jsonb to int4',
4694 proname => 'int4', prorettype => 'int4', proargtypes => 'jsonb',
4695 prosrc => 'jsonb_int4' },
4696 { oid => '3452', descr => 'convert jsonb to int8',
4697 proname => 'int8', prorettype => 'int8', proargtypes => 'jsonb',
4698 prosrc => 'jsonb_int8' },
4699 { oid => '3453', descr => 'convert jsonb to float4',
4700 proname => 'float4', prorettype => 'float4', proargtypes => 'jsonb',
4701 prosrc => 'jsonb_float4' },
4702 { oid => '2580', descr => 'convert jsonb to float8',
4703 proname => 'float8', prorettype => 'float8', proargtypes => 'jsonb',
4704 prosrc => 'jsonb_float8' },
4706 # formatting
4707 { oid => '1770', descr => 'format timestamp with time zone to text',
4708 proname => 'to_char', provolatile => 's', prorettype => 'text',
4709 proargtypes => 'timestamptz text', prosrc => 'timestamptz_to_char' },
4710 { oid => '1772', descr => 'format numeric to text',
4711 proname => 'to_char', provolatile => 's', prorettype => 'text',
4712 proargtypes => 'numeric text', prosrc => 'numeric_to_char' },
4713 { oid => '1773', descr => 'format int4 to text',
4714 proname => 'to_char', provolatile => 's', prorettype => 'text',
4715 proargtypes => 'int4 text', prosrc => 'int4_to_char' },
4716 { oid => '1774', descr => 'format int8 to text',
4717 proname => 'to_char', provolatile => 's', prorettype => 'text',
4718 proargtypes => 'int8 text', prosrc => 'int8_to_char' },
4719 { oid => '1775', descr => 'format float4 to text',
4720 proname => 'to_char', provolatile => 's', prorettype => 'text',
4721 proargtypes => 'float4 text', prosrc => 'float4_to_char' },
4722 { oid => '1776', descr => 'format float8 to text',
4723 proname => 'to_char', provolatile => 's', prorettype => 'text',
4724 proargtypes => 'float8 text', prosrc => 'float8_to_char' },
4725 { oid => '1777', descr => 'convert text to numeric',
4726 proname => 'to_number', provolatile => 's', prorettype => 'numeric',
4727 proargtypes => 'text text', prosrc => 'numeric_to_number' },
4728 { oid => '1778', descr => 'convert text to timestamp with time zone',
4729 proname => 'to_timestamp', provolatile => 's', prorettype => 'timestamptz',
4730 proargtypes => 'text text', prosrc => 'to_timestamp' },
4731 { oid => '1780', descr => 'convert text to date',
4732 proname => 'to_date', provolatile => 's', prorettype => 'date',
4733 proargtypes => 'text text', prosrc => 'to_date' },
4734 { oid => '1768', descr => 'format interval to text',
4735 proname => 'to_char', provolatile => 's', prorettype => 'text',
4736 proargtypes => 'interval text', prosrc => 'interval_to_char' },
4738 { oid => '1282', descr => 'quote an identifier for usage in a querystring',
4739 proname => 'quote_ident', prorettype => 'text', proargtypes => 'text',
4740 prosrc => 'quote_ident' },
4741 { oid => '1283', descr => 'quote a literal for usage in a querystring',
4742 proname => 'quote_literal', prorettype => 'text', proargtypes => 'text',
4743 prosrc => 'quote_literal' },
4744 { oid => '1285', descr => 'quote a data value for usage in a querystring',
4745 proname => 'quote_literal', prolang => 'sql', provolatile => 's',
4746 prorettype => 'text', proargtypes => 'anyelement',
4747 prosrc => 'select pg_catalog.quote_literal($1::pg_catalog.text)' },
4748 { oid => '1289',
4749 descr => 'quote a possibly-null literal for usage in a querystring',
4750 proname => 'quote_nullable', proisstrict => 'f', prorettype => 'text',
4751 proargtypes => 'text', prosrc => 'quote_nullable' },
4752 { oid => '1290',
4753 descr => 'quote a possibly-null data value for usage in a querystring',
4754 proname => 'quote_nullable', prolang => 'sql', proisstrict => 'f',
4755 provolatile => 's', prorettype => 'text', proargtypes => 'anyelement',
4756 prosrc => 'select pg_catalog.quote_nullable($1::pg_catalog.text)' },
4758 { oid => '1798', descr => 'I/O',
4759 proname => 'oidin', prorettype => 'oid', proargtypes => 'cstring',
4760 prosrc => 'oidin' },
4761 { oid => '1799', descr => 'I/O',
4762 proname => 'oidout', prorettype => 'cstring', proargtypes => 'oid',
4763 prosrc => 'oidout' },
4765 { oid => '3058', descr => 'concatenate values',
4766 proname => 'concat', provariadic => 'any', proisstrict => 'f',
4767 provolatile => 's', prorettype => 'text', proargtypes => 'any',
4768 proallargtypes => '{any}', proargmodes => '{v}', prosrc => 'text_concat' },
4769 { oid => '3059', descr => 'concatenate values with separators',
4770 proname => 'concat_ws', provariadic => 'any', proisstrict => 'f',
4771 provolatile => 's', prorettype => 'text', proargtypes => 'text any',
4772 proallargtypes => '{text,any}', proargmodes => '{i,v}',
4773 prosrc => 'text_concat_ws' },
4774 { oid => '3060', descr => 'extract the first n characters',
4775 proname => 'left', prorettype => 'text', proargtypes => 'text int4',
4776 prosrc => 'text_left' },
4777 { oid => '3061', descr => 'extract the last n characters',
4778 proname => 'right', prorettype => 'text', proargtypes => 'text int4',
4779 prosrc => 'text_right' },
4780 { oid => '3062', descr => 'reverse text',
4781 proname => 'reverse', prorettype => 'text', proargtypes => 'text',
4782 prosrc => 'text_reverse' },
4783 { oid => '3539', descr => 'format text message',
4784 proname => 'format', provariadic => 'any', proisstrict => 'f',
4785 provolatile => 's', prorettype => 'text', proargtypes => 'text any',
4786 proallargtypes => '{text,any}', proargmodes => '{i,v}',
4787 prosrc => 'text_format' },
4788 { oid => '3540', descr => 'format text message',
4789 proname => 'format', proisstrict => 'f', provolatile => 's',
4790 prorettype => 'text', proargtypes => 'text', prosrc => 'text_format_nv' },
4792 { oid => '1810', descr => 'length in bits',
4793 proname => 'bit_length', prolang => 'sql', prorettype => 'int4',
4794 proargtypes => 'bytea', prosrc => 'see system_functions.sql' },
4795 { oid => '1811', descr => 'length in bits',
4796 proname => 'bit_length', prolang => 'sql', prorettype => 'int4',
4797 proargtypes => 'text', prosrc => 'see system_functions.sql' },
4798 { oid => '1812', descr => 'length in bits',
4799 proname => 'bit_length', prolang => 'sql', prorettype => 'int4',
4800 proargtypes => 'bit', prosrc => 'see system_functions.sql' },
4802 # Selectivity estimators for LIKE and related operators
4803 { oid => '1814', descr => 'restriction selectivity of ILIKE',
4804 proname => 'iclikesel', provolatile => 's', prorettype => 'float8',
4805 proargtypes => 'internal oid internal int4', prosrc => 'iclikesel' },
4806 { oid => '1815', descr => 'restriction selectivity of NOT ILIKE',
4807 proname => 'icnlikesel', provolatile => 's', prorettype => 'float8',
4808 proargtypes => 'internal oid internal int4', prosrc => 'icnlikesel' },
4809 { oid => '1816', descr => 'join selectivity of ILIKE',
4810 proname => 'iclikejoinsel', provolatile => 's', prorettype => 'float8',
4811 proargtypes => 'internal oid internal int2 internal',
4812 prosrc => 'iclikejoinsel' },
4813 { oid => '1817', descr => 'join selectivity of NOT ILIKE',
4814 proname => 'icnlikejoinsel', provolatile => 's', prorettype => 'float8',
4815 proargtypes => 'internal oid internal int2 internal',
4816 prosrc => 'icnlikejoinsel' },
4817 { oid => '1818', descr => 'restriction selectivity of regex match',
4818 proname => 'regexeqsel', provolatile => 's', prorettype => 'float8',
4819 proargtypes => 'internal oid internal int4', prosrc => 'regexeqsel' },
4820 { oid => '1819', descr => 'restriction selectivity of LIKE',
4821 proname => 'likesel', provolatile => 's', prorettype => 'float8',
4822 proargtypes => 'internal oid internal int4', prosrc => 'likesel' },
4823 { oid => '1820',
4824 descr => 'restriction selectivity of case-insensitive regex match',
4825 proname => 'icregexeqsel', provolatile => 's', prorettype => 'float8',
4826 proargtypes => 'internal oid internal int4', prosrc => 'icregexeqsel' },
4827 { oid => '1821', descr => 'restriction selectivity of regex non-match',
4828 proname => 'regexnesel', provolatile => 's', prorettype => 'float8',
4829 proargtypes => 'internal oid internal int4', prosrc => 'regexnesel' },
4830 { oid => '1822', descr => 'restriction selectivity of NOT LIKE',
4831 proname => 'nlikesel', provolatile => 's', prorettype => 'float8',
4832 proargtypes => 'internal oid internal int4', prosrc => 'nlikesel' },
4833 { oid => '1823',
4834 descr => 'restriction selectivity of case-insensitive regex non-match',
4835 proname => 'icregexnesel', provolatile => 's', prorettype => 'float8',
4836 proargtypes => 'internal oid internal int4', prosrc => 'icregexnesel' },
4837 { oid => '1824', descr => 'join selectivity of regex match',
4838 proname => 'regexeqjoinsel', provolatile => 's', prorettype => 'float8',
4839 proargtypes => 'internal oid internal int2 internal',
4840 prosrc => 'regexeqjoinsel' },
4841 { oid => '1825', descr => 'join selectivity of LIKE',
4842 proname => 'likejoinsel', provolatile => 's', prorettype => 'float8',
4843 proargtypes => 'internal oid internal int2 internal',
4844 prosrc => 'likejoinsel' },
4845 { oid => '1826', descr => 'join selectivity of case-insensitive regex match',
4846 proname => 'icregexeqjoinsel', provolatile => 's', prorettype => 'float8',
4847 proargtypes => 'internal oid internal int2 internal',
4848 prosrc => 'icregexeqjoinsel' },
4849 { oid => '1827', descr => 'join selectivity of regex non-match',
4850 proname => 'regexnejoinsel', provolatile => 's', prorettype => 'float8',
4851 proargtypes => 'internal oid internal int2 internal',
4852 prosrc => 'regexnejoinsel' },
4853 { oid => '1828', descr => 'join selectivity of NOT LIKE',
4854 proname => 'nlikejoinsel', provolatile => 's', prorettype => 'float8',
4855 proargtypes => 'internal oid internal int2 internal',
4856 prosrc => 'nlikejoinsel' },
4857 { oid => '1829',
4858 descr => 'join selectivity of case-insensitive regex non-match',
4859 proname => 'icregexnejoinsel', provolatile => 's', prorettype => 'float8',
4860 proargtypes => 'internal oid internal int2 internal',
4861 prosrc => 'icregexnejoinsel' },
4862 { oid => '3437', descr => 'restriction selectivity of exact prefix',
4863 proname => 'prefixsel', provolatile => 's', prorettype => 'float8',
4864 proargtypes => 'internal oid internal int4', prosrc => 'prefixsel' },
4865 { oid => '3438', descr => 'join selectivity of exact prefix',
4866 proname => 'prefixjoinsel', provolatile => 's', prorettype => 'float8',
4867 proargtypes => 'internal oid internal int2 internal',
4868 prosrc => 'prefixjoinsel' },
4870 # Aggregate-related functions
4871 { oid => '1830', descr => 'aggregate final function',
4872 proname => 'float8_avg', prorettype => 'float8', proargtypes => '_float8',
4873 prosrc => 'float8_avg' },
4874 { oid => '2512', descr => 'aggregate final function',
4875 proname => 'float8_var_pop', prorettype => 'float8', proargtypes => '_float8',
4876 prosrc => 'float8_var_pop' },
4877 { oid => '1831', descr => 'aggregate final function',
4878 proname => 'float8_var_samp', prorettype => 'float8',
4879 proargtypes => '_float8', prosrc => 'float8_var_samp' },
4880 { oid => '2513', descr => 'aggregate final function',
4881 proname => 'float8_stddev_pop', prorettype => 'float8',
4882 proargtypes => '_float8', prosrc => 'float8_stddev_pop' },
4883 { oid => '1832', descr => 'aggregate final function',
4884 proname => 'float8_stddev_samp', prorettype => 'float8',
4885 proargtypes => '_float8', prosrc => 'float8_stddev_samp' },
4886 { oid => '1833', descr => 'aggregate transition function',
4887 proname => 'numeric_accum', proisstrict => 'f', prorettype => 'internal',
4888 proargtypes => 'internal numeric', prosrc => 'numeric_accum' },
4889 { oid => '3341', descr => 'aggregate combine function',
4890 proname => 'numeric_combine', proisstrict => 'f', prorettype => 'internal',
4891 proargtypes => 'internal internal', prosrc => 'numeric_combine' },
4892 { oid => '2858', descr => 'aggregate transition function',
4893 proname => 'numeric_avg_accum', proisstrict => 'f', prorettype => 'internal',
4894 proargtypes => 'internal numeric', prosrc => 'numeric_avg_accum' },
4895 { oid => '3337', descr => 'aggregate combine function',
4896 proname => 'numeric_avg_combine', proisstrict => 'f',
4897 prorettype => 'internal', proargtypes => 'internal internal',
4898 prosrc => 'numeric_avg_combine' },
4899 { oid => '2740', descr => 'aggregate serial function',
4900 proname => 'numeric_avg_serialize', prorettype => 'bytea',
4901 proargtypes => 'internal', prosrc => 'numeric_avg_serialize' },
4902 { oid => '2741', descr => 'aggregate deserial function',
4903 proname => 'numeric_avg_deserialize', prorettype => 'internal',
4904 proargtypes => 'bytea internal', prosrc => 'numeric_avg_deserialize' },
4905 { oid => '3335', descr => 'aggregate serial function',
4906 proname => 'numeric_serialize', prorettype => 'bytea',
4907 proargtypes => 'internal', prosrc => 'numeric_serialize' },
4908 { oid => '3336', descr => 'aggregate deserial function',
4909 proname => 'numeric_deserialize', prorettype => 'internal',
4910 proargtypes => 'bytea internal', prosrc => 'numeric_deserialize' },
4911 { oid => '3548', descr => 'aggregate transition function',
4912 proname => 'numeric_accum_inv', proisstrict => 'f', prorettype => 'internal',
4913 proargtypes => 'internal numeric', prosrc => 'numeric_accum_inv' },
4914 { oid => '1834', descr => 'aggregate transition function',
4915 proname => 'int2_accum', proisstrict => 'f', prorettype => 'internal',
4916 proargtypes => 'internal int2', prosrc => 'int2_accum' },
4917 { oid => '1835', descr => 'aggregate transition function',
4918 proname => 'int4_accum', proisstrict => 'f', prorettype => 'internal',
4919 proargtypes => 'internal int4', prosrc => 'int4_accum' },
4920 { oid => '1836', descr => 'aggregate transition function',
4921 proname => 'int8_accum', proisstrict => 'f', prorettype => 'internal',
4922 proargtypes => 'internal int8', prosrc => 'int8_accum' },
4923 { oid => '3338', descr => 'aggregate combine function',
4924 proname => 'numeric_poly_combine', proisstrict => 'f',
4925 prorettype => 'internal', proargtypes => 'internal internal',
4926 prosrc => 'numeric_poly_combine' },
4927 { oid => '3339', descr => 'aggregate serial function',
4928 proname => 'numeric_poly_serialize', prorettype => 'bytea',
4929 proargtypes => 'internal', prosrc => 'numeric_poly_serialize' },
4930 { oid => '3340', descr => 'aggregate deserial function',
4931 proname => 'numeric_poly_deserialize', prorettype => 'internal',
4932 proargtypes => 'bytea internal', prosrc => 'numeric_poly_deserialize' },
4933 { oid => '2746', descr => 'aggregate transition function',
4934 proname => 'int8_avg_accum', proisstrict => 'f', prorettype => 'internal',
4935 proargtypes => 'internal int8', prosrc => 'int8_avg_accum' },
4936 { oid => '3567', descr => 'aggregate transition function',
4937 proname => 'int2_accum_inv', proisstrict => 'f', prorettype => 'internal',
4938 proargtypes => 'internal int2', prosrc => 'int2_accum_inv' },
4939 { oid => '3568', descr => 'aggregate transition function',
4940 proname => 'int4_accum_inv', proisstrict => 'f', prorettype => 'internal',
4941 proargtypes => 'internal int4', prosrc => 'int4_accum_inv' },
4942 { oid => '3569', descr => 'aggregate transition function',
4943 proname => 'int8_accum_inv', proisstrict => 'f', prorettype => 'internal',
4944 proargtypes => 'internal int8', prosrc => 'int8_accum_inv' },
4945 { oid => '3387', descr => 'aggregate transition function',
4946 proname => 'int8_avg_accum_inv', proisstrict => 'f', prorettype => 'internal',
4947 proargtypes => 'internal int8', prosrc => 'int8_avg_accum_inv' },
4948 { oid => '2785', descr => 'aggregate combine function',
4949 proname => 'int8_avg_combine', proisstrict => 'f', prorettype => 'internal',
4950 proargtypes => 'internal internal', prosrc => 'int8_avg_combine' },
4951 { oid => '2786', descr => 'aggregate serial function',
4952 proname => 'int8_avg_serialize', prorettype => 'bytea',
4953 proargtypes => 'internal', prosrc => 'int8_avg_serialize' },
4954 { oid => '2787', descr => 'aggregate deserial function',
4955 proname => 'int8_avg_deserialize', prorettype => 'internal',
4956 proargtypes => 'bytea internal', prosrc => 'int8_avg_deserialize' },
4957 { oid => '3324', descr => 'aggregate combine function',
4958 proname => 'int4_avg_combine', prorettype => '_int8',
4959 proargtypes => '_int8 _int8', prosrc => 'int4_avg_combine' },
4960 { oid => '3178', descr => 'aggregate final function',
4961 proname => 'numeric_sum', proisstrict => 'f', prorettype => 'numeric',
4962 proargtypes => 'internal', prosrc => 'numeric_sum' },
4963 { oid => '1837', descr => 'aggregate final function',
4964 proname => 'numeric_avg', proisstrict => 'f', prorettype => 'numeric',
4965 proargtypes => 'internal', prosrc => 'numeric_avg' },
4966 { oid => '2514', descr => 'aggregate final function',
4967 proname => 'numeric_var_pop', proisstrict => 'f', prorettype => 'numeric',
4968 proargtypes => 'internal', prosrc => 'numeric_var_pop' },
4969 { oid => '1838', descr => 'aggregate final function',
4970 proname => 'numeric_var_samp', proisstrict => 'f', prorettype => 'numeric',
4971 proargtypes => 'internal', prosrc => 'numeric_var_samp' },
4972 { oid => '2596', descr => 'aggregate final function',
4973 proname => 'numeric_stddev_pop', proisstrict => 'f', prorettype => 'numeric',
4974 proargtypes => 'internal', prosrc => 'numeric_stddev_pop' },
4975 { oid => '1839', descr => 'aggregate final function',
4976 proname => 'numeric_stddev_samp', proisstrict => 'f', prorettype => 'numeric',
4977 proargtypes => 'internal', prosrc => 'numeric_stddev_samp' },
4978 { oid => '1840', descr => 'aggregate transition function',
4979 proname => 'int2_sum', proisstrict => 'f', prorettype => 'int8',
4980 proargtypes => 'int8 int2', prosrc => 'int2_sum' },
4981 { oid => '1841', descr => 'aggregate transition function',
4982 proname => 'int4_sum', proisstrict => 'f', prorettype => 'int8',
4983 proargtypes => 'int8 int4', prosrc => 'int4_sum' },
4984 { oid => '1842', descr => 'aggregate transition function',
4985 proname => 'int8_sum', proisstrict => 'f', prorettype => 'numeric',
4986 proargtypes => 'numeric int8', prosrc => 'int8_sum' },
4987 { oid => '3388', descr => 'aggregate final function',
4988 proname => 'numeric_poly_sum', proisstrict => 'f', prorettype => 'numeric',
4989 proargtypes => 'internal', prosrc => 'numeric_poly_sum' },
4990 { oid => '3389', descr => 'aggregate final function',
4991 proname => 'numeric_poly_avg', proisstrict => 'f', prorettype => 'numeric',
4992 proargtypes => 'internal', prosrc => 'numeric_poly_avg' },
4993 { oid => '3390', descr => 'aggregate final function',
4994 proname => 'numeric_poly_var_pop', proisstrict => 'f',
4995 prorettype => 'numeric', proargtypes => 'internal',
4996 prosrc => 'numeric_poly_var_pop' },
4997 { oid => '3391', descr => 'aggregate final function',
4998 proname => 'numeric_poly_var_samp', proisstrict => 'f',
4999 prorettype => 'numeric', proargtypes => 'internal',
5000 prosrc => 'numeric_poly_var_samp' },
5001 { oid => '3392', descr => 'aggregate final function',
5002 proname => 'numeric_poly_stddev_pop', proisstrict => 'f',
5003 prorettype => 'numeric', proargtypes => 'internal',
5004 prosrc => 'numeric_poly_stddev_pop' },
5005 { oid => '3393', descr => 'aggregate final function',
5006 proname => 'numeric_poly_stddev_samp', proisstrict => 'f',
5007 prorettype => 'numeric', proargtypes => 'internal',
5008 prosrc => 'numeric_poly_stddev_samp' },
5010 { oid => '1843', descr => 'aggregate transition function',
5011 proname => 'interval_avg_accum', proisstrict => 'f', prorettype => 'internal',
5012 proargtypes => 'internal interval', prosrc => 'interval_avg_accum' },
5013 { oid => '3325', descr => 'aggregate combine function',
5014 proname => 'interval_avg_combine', proisstrict => 'f',
5015 prorettype => 'internal', proargtypes => 'internal internal',
5016 prosrc => 'interval_avg_combine' },
5017 { oid => '3549', descr => 'aggregate transition function',
5018 proname => 'interval_avg_accum_inv', proisstrict => 'f',
5019 prorettype => 'internal', proargtypes => 'internal interval',
5020 prosrc => 'interval_avg_accum_inv' },
5021 { oid => '6324', descr => 'aggregate serial function',
5022 proname => 'interval_avg_serialize', prorettype => 'bytea',
5023 proargtypes => 'internal', prosrc => 'interval_avg_serialize' },
5024 { oid => '6325', descr => 'aggregate deserial function',
5025 proname => 'interval_avg_deserialize', prorettype => 'internal',
5026 proargtypes => 'bytea internal', prosrc => 'interval_avg_deserialize' },
5027 { oid => '1844', descr => 'aggregate final function',
5028 proname => 'interval_avg', proisstrict => 'f', prorettype => 'interval',
5029 proargtypes => 'internal', prosrc => 'interval_avg' },
5030 { oid => '6326', descr => 'aggregate final function',
5031 proname => 'interval_sum', proisstrict => 'f', prorettype => 'interval',
5032 proargtypes => 'internal', prosrc => 'interval_sum' },
5033 { oid => '1962', descr => 'aggregate transition function',
5034 proname => 'int2_avg_accum', prorettype => '_int8',
5035 proargtypes => '_int8 int2', prosrc => 'int2_avg_accum' },
5036 { oid => '1963', descr => 'aggregate transition function',
5037 proname => 'int4_avg_accum', prorettype => '_int8',
5038 proargtypes => '_int8 int4', prosrc => 'int4_avg_accum' },
5039 { oid => '3570', descr => 'aggregate transition function',
5040 proname => 'int2_avg_accum_inv', prorettype => '_int8',
5041 proargtypes => '_int8 int2', prosrc => 'int2_avg_accum_inv' },
5042 { oid => '3571', descr => 'aggregate transition function',
5043 proname => 'int4_avg_accum_inv', prorettype => '_int8',
5044 proargtypes => '_int8 int4', prosrc => 'int4_avg_accum_inv' },
5045 { oid => '1964', descr => 'aggregate final function',
5046 proname => 'int8_avg', prorettype => 'numeric', proargtypes => '_int8',
5047 prosrc => 'int8_avg' },
5048 { oid => '3572', descr => 'aggregate final function',
5049 proname => 'int2int4_sum', prorettype => 'int8', proargtypes => '_int8',
5050 prosrc => 'int2int4_sum' },
5051 { oid => '2805', descr => 'aggregate transition function',
5052 proname => 'int8inc_float8_float8', prorettype => 'int8',
5053 proargtypes => 'int8 float8 float8', prosrc => 'int8inc_float8_float8' },
5054 { oid => '2806', descr => 'aggregate transition function',
5055 proname => 'float8_regr_accum', prorettype => '_float8',
5056 proargtypes => '_float8 float8 float8', prosrc => 'float8_regr_accum' },
5057 { oid => '3342', descr => 'aggregate combine function',
5058 proname => 'float8_regr_combine', prorettype => '_float8',
5059 proargtypes => '_float8 _float8', prosrc => 'float8_regr_combine' },
5060 { oid => '2807', descr => 'aggregate final function',
5061 proname => 'float8_regr_sxx', prorettype => 'float8',
5062 proargtypes => '_float8', prosrc => 'float8_regr_sxx' },
5063 { oid => '2808', descr => 'aggregate final function',
5064 proname => 'float8_regr_syy', prorettype => 'float8',
5065 proargtypes => '_float8', prosrc => 'float8_regr_syy' },
5066 { oid => '2809', descr => 'aggregate final function',
5067 proname => 'float8_regr_sxy', prorettype => 'float8',
5068 proargtypes => '_float8', prosrc => 'float8_regr_sxy' },
5069 { oid => '2810', descr => 'aggregate final function',
5070 proname => 'float8_regr_avgx', prorettype => 'float8',
5071 proargtypes => '_float8', prosrc => 'float8_regr_avgx' },
5072 { oid => '2811', descr => 'aggregate final function',
5073 proname => 'float8_regr_avgy', prorettype => 'float8',
5074 proargtypes => '_float8', prosrc => 'float8_regr_avgy' },
5075 { oid => '2812', descr => 'aggregate final function',
5076 proname => 'float8_regr_r2', prorettype => 'float8', proargtypes => '_float8',
5077 prosrc => 'float8_regr_r2' },
5078 { oid => '2813', descr => 'aggregate final function',
5079 proname => 'float8_regr_slope', prorettype => 'float8',
5080 proargtypes => '_float8', prosrc => 'float8_regr_slope' },
5081 { oid => '2814', descr => 'aggregate final function',
5082 proname => 'float8_regr_intercept', prorettype => 'float8',
5083 proargtypes => '_float8', prosrc => 'float8_regr_intercept' },
5084 { oid => '2815', descr => 'aggregate final function',
5085 proname => 'float8_covar_pop', prorettype => 'float8',
5086 proargtypes => '_float8', prosrc => 'float8_covar_pop' },
5087 { oid => '2816', descr => 'aggregate final function',
5088 proname => 'float8_covar_samp', prorettype => 'float8',
5089 proargtypes => '_float8', prosrc => 'float8_covar_samp' },
5090 { oid => '2817', descr => 'aggregate final function',
5091 proname => 'float8_corr', prorettype => 'float8', proargtypes => '_float8',
5092 prosrc => 'float8_corr' },
5094 { oid => '3535', descr => 'aggregate transition function',
5095 proname => 'string_agg_transfn', proisstrict => 'f', prorettype => 'internal',
5096 proargtypes => 'internal text text', prosrc => 'string_agg_transfn' },
5097 { oid => '6299', descr => 'aggregate combine function',
5098 proname => 'string_agg_combine', proisstrict => 'f', prorettype => 'internal',
5099 proargtypes => 'internal internal', prosrc => 'string_agg_combine' },
5100 { oid => '6300', descr => 'aggregate serial function',
5101 proname => 'string_agg_serialize', prorettype => 'bytea',
5102 proargtypes => 'internal', prosrc => 'string_agg_serialize' },
5103 { oid => '6301', descr => 'aggregate deserial function',
5104 proname => 'string_agg_deserialize', prorettype => 'internal',
5105 proargtypes => 'bytea internal', prosrc => 'string_agg_deserialize' },
5106 { oid => '3536', descr => 'aggregate final function',
5107 proname => 'string_agg_finalfn', proisstrict => 'f', prorettype => 'text',
5108 proargtypes => 'internal', prosrc => 'string_agg_finalfn' },
5109 { oid => '3538', descr => 'concatenate aggregate input into a string',
5110 proname => 'string_agg', prokind => 'a', proisstrict => 'f',
5111 prorettype => 'text', proargtypes => 'text text',
5112 proargnames => '{value,delimiter}', prosrc => 'aggregate_dummy' },
5113 { oid => '3543', descr => 'aggregate transition function',
5114 proname => 'bytea_string_agg_transfn', proisstrict => 'f',
5115 prorettype => 'internal', proargtypes => 'internal bytea bytea',
5116 prosrc => 'bytea_string_agg_transfn' },
5117 { oid => '3544', descr => 'aggregate final function',
5118 proname => 'bytea_string_agg_finalfn', proisstrict => 'f',
5119 prorettype => 'bytea', proargtypes => 'internal',
5120 prosrc => 'bytea_string_agg_finalfn' },
5121 { oid => '3545', descr => 'concatenate aggregate input into a bytea',
5122 proname => 'string_agg', prokind => 'a', proisstrict => 'f',
5123 prorettype => 'bytea', proargtypes => 'bytea bytea',
5124 proargnames => '{value,delimiter}', prosrc => 'aggregate_dummy' },
5126 # To ASCII conversion
5127 { oid => '1845', descr => 'encode text from DB encoding to ASCII text',
5128 proname => 'to_ascii', prorettype => 'text', proargtypes => 'text',
5129 prosrc => 'to_ascii_default' },
5130 { oid => '1846', descr => 'encode text from encoding to ASCII text',
5131 proname => 'to_ascii', prorettype => 'text', proargtypes => 'text int4',
5132 prosrc => 'to_ascii_enc' },
5133 { oid => '1847', descr => 'encode text from encoding to ASCII text',
5134 proname => 'to_ascii', prorettype => 'text', proargtypes => 'text name',
5135 prosrc => 'to_ascii_encname' },
5137 { oid => '1848',
5138 proname => 'interval_pl_time', prolang => 'sql', prorettype => 'time',
5139 proargtypes => 'interval time', prosrc => 'see system_functions.sql' },
5141 { oid => '1850',
5142 proname => 'int28eq', proleakproof => 't', prorettype => 'bool',
5143 proargtypes => 'int2 int8', prosrc => 'int28eq' },
5144 { oid => '1851',
5145 proname => 'int28ne', proleakproof => 't', prorettype => 'bool',
5146 proargtypes => 'int2 int8', prosrc => 'int28ne' },
5147 { oid => '1852',
5148 proname => 'int28lt', proleakproof => 't', prorettype => 'bool',
5149 proargtypes => 'int2 int8', prosrc => 'int28lt' },
5150 { oid => '1853',
5151 proname => 'int28gt', proleakproof => 't', prorettype => 'bool',
5152 proargtypes => 'int2 int8', prosrc => 'int28gt' },
5153 { oid => '1854',
5154 proname => 'int28le', proleakproof => 't', prorettype => 'bool',
5155 proargtypes => 'int2 int8', prosrc => 'int28le' },
5156 { oid => '1855',
5157 proname => 'int28ge', proleakproof => 't', prorettype => 'bool',
5158 proargtypes => 'int2 int8', prosrc => 'int28ge' },
5160 { oid => '1856',
5161 proname => 'int82eq', proleakproof => 't', prorettype => 'bool',
5162 proargtypes => 'int8 int2', prosrc => 'int82eq' },
5163 { oid => '1857',
5164 proname => 'int82ne', proleakproof => 't', prorettype => 'bool',
5165 proargtypes => 'int8 int2', prosrc => 'int82ne' },
5166 { oid => '1858',
5167 proname => 'int82lt', proleakproof => 't', prorettype => 'bool',
5168 proargtypes => 'int8 int2', prosrc => 'int82lt' },
5169 { oid => '1859',
5170 proname => 'int82gt', proleakproof => 't', prorettype => 'bool',
5171 proargtypes => 'int8 int2', prosrc => 'int82gt' },
5172 { oid => '1860',
5173 proname => 'int82le', proleakproof => 't', prorettype => 'bool',
5174 proargtypes => 'int8 int2', prosrc => 'int82le' },
5175 { oid => '1861',
5176 proname => 'int82ge', proleakproof => 't', prorettype => 'bool',
5177 proargtypes => 'int8 int2', prosrc => 'int82ge' },
5179 { oid => '1892',
5180 proname => 'int2and', prorettype => 'int2', proargtypes => 'int2 int2',
5181 prosrc => 'int2and' },
5182 { oid => '1893',
5183 proname => 'int2or', prorettype => 'int2', proargtypes => 'int2 int2',
5184 prosrc => 'int2or' },
5185 { oid => '1894',
5186 proname => 'int2xor', prorettype => 'int2', proargtypes => 'int2 int2',
5187 prosrc => 'int2xor' },
5188 { oid => '1895',
5189 proname => 'int2not', prorettype => 'int2', proargtypes => 'int2',
5190 prosrc => 'int2not' },
5191 { oid => '1896',
5192 proname => 'int2shl', prorettype => 'int2', proargtypes => 'int2 int4',
5193 prosrc => 'int2shl' },
5194 { oid => '1897',
5195 proname => 'int2shr', prorettype => 'int2', proargtypes => 'int2 int4',
5196 prosrc => 'int2shr' },
5198 { oid => '1898',
5199 proname => 'int4and', prorettype => 'int4', proargtypes => 'int4 int4',
5200 prosrc => 'int4and' },
5201 { oid => '1899',
5202 proname => 'int4or', prorettype => 'int4', proargtypes => 'int4 int4',
5203 prosrc => 'int4or' },
5204 { oid => '1900',
5205 proname => 'int4xor', prorettype => 'int4', proargtypes => 'int4 int4',
5206 prosrc => 'int4xor' },
5207 { oid => '1901',
5208 proname => 'int4not', prorettype => 'int4', proargtypes => 'int4',
5209 prosrc => 'int4not' },
5210 { oid => '1902',
5211 proname => 'int4shl', prorettype => 'int4', proargtypes => 'int4 int4',
5212 prosrc => 'int4shl' },
5213 { oid => '1903',
5214 proname => 'int4shr', prorettype => 'int4', proargtypes => 'int4 int4',
5215 prosrc => 'int4shr' },
5217 { oid => '1904',
5218 proname => 'int8and', prorettype => 'int8', proargtypes => 'int8 int8',
5219 prosrc => 'int8and' },
5220 { oid => '1905',
5221 proname => 'int8or', prorettype => 'int8', proargtypes => 'int8 int8',
5222 prosrc => 'int8or' },
5223 { oid => '1906',
5224 proname => 'int8xor', prorettype => 'int8', proargtypes => 'int8 int8',
5225 prosrc => 'int8xor' },
5226 { oid => '1907',
5227 proname => 'int8not', prorettype => 'int8', proargtypes => 'int8',
5228 prosrc => 'int8not' },
5229 { oid => '1908',
5230 proname => 'int8shl', prorettype => 'int8', proargtypes => 'int8 int4',
5231 prosrc => 'int8shl' },
5232 { oid => '1909',
5233 proname => 'int8shr', prorettype => 'int8', proargtypes => 'int8 int4',
5234 prosrc => 'int8shr' },
5236 { oid => '1910',
5237 proname => 'int8up', prorettype => 'int8', proargtypes => 'int8',
5238 prosrc => 'int8up' },
5239 { oid => '1911',
5240 proname => 'int2up', prorettype => 'int2', proargtypes => 'int2',
5241 prosrc => 'int2up' },
5242 { oid => '1912',
5243 proname => 'int4up', prorettype => 'int4', proargtypes => 'int4',
5244 prosrc => 'int4up' },
5245 { oid => '1913',
5246 proname => 'float4up', prorettype => 'float4', proargtypes => 'float4',
5247 prosrc => 'float4up' },
5248 { oid => '1914',
5249 proname => 'float8up', prorettype => 'float8', proargtypes => 'float8',
5250 prosrc => 'float8up' },
5251 { oid => '1915',
5252 proname => 'numeric_uplus', prorettype => 'numeric', proargtypes => 'numeric',
5253 prosrc => 'numeric_uplus' },
5255 { oid => '1922', descr => 'user privilege on relation by username, rel name',
5256 proname => 'has_table_privilege', provolatile => 's', prorettype => 'bool',
5257 proargtypes => 'name text text', prosrc => 'has_table_privilege_name_name' },
5258 { oid => '1923', descr => 'user privilege on relation by username, rel oid',
5259 proname => 'has_table_privilege', provolatile => 's', prorettype => 'bool',
5260 proargtypes => 'name oid text', prosrc => 'has_table_privilege_name_id' },
5261 { oid => '1924', descr => 'user privilege on relation by user oid, rel name',
5262 proname => 'has_table_privilege', provolatile => 's', prorettype => 'bool',
5263 proargtypes => 'oid text text', prosrc => 'has_table_privilege_id_name' },
5264 { oid => '1925', descr => 'user privilege on relation by user oid, rel oid',
5265 proname => 'has_table_privilege', provolatile => 's', prorettype => 'bool',
5266 proargtypes => 'oid oid text', prosrc => 'has_table_privilege_id_id' },
5267 { oid => '1926', descr => 'current user privilege on relation by rel name',
5268 proname => 'has_table_privilege', provolatile => 's', prorettype => 'bool',
5269 proargtypes => 'text text', prosrc => 'has_table_privilege_name' },
5270 { oid => '1927', descr => 'current user privilege on relation by rel oid',
5271 proname => 'has_table_privilege', provolatile => 's', prorettype => 'bool',
5272 proargtypes => 'oid text', prosrc => 'has_table_privilege_id' },
5274 { oid => '2181', descr => 'user privilege on sequence by username, seq name',
5275 proname => 'has_sequence_privilege', provolatile => 's', prorettype => 'bool',
5276 proargtypes => 'name text text',
5277 prosrc => 'has_sequence_privilege_name_name' },
5278 { oid => '2182', descr => 'user privilege on sequence by username, seq oid',
5279 proname => 'has_sequence_privilege', provolatile => 's', prorettype => 'bool',
5280 proargtypes => 'name oid text', prosrc => 'has_sequence_privilege_name_id' },
5281 { oid => '2183', descr => 'user privilege on sequence by user oid, seq name',
5282 proname => 'has_sequence_privilege', provolatile => 's', prorettype => 'bool',
5283 proargtypes => 'oid text text', prosrc => 'has_sequence_privilege_id_name' },
5284 { oid => '2184', descr => 'user privilege on sequence by user oid, seq oid',
5285 proname => 'has_sequence_privilege', provolatile => 's', prorettype => 'bool',
5286 proargtypes => 'oid oid text', prosrc => 'has_sequence_privilege_id_id' },
5287 { oid => '2185', descr => 'current user privilege on sequence by seq name',
5288 proname => 'has_sequence_privilege', provolatile => 's', prorettype => 'bool',
5289 proargtypes => 'text text', prosrc => 'has_sequence_privilege_name' },
5290 { oid => '2186', descr => 'current user privilege on sequence by seq oid',
5291 proname => 'has_sequence_privilege', provolatile => 's', prorettype => 'bool',
5292 proargtypes => 'oid text', prosrc => 'has_sequence_privilege_id' },
5294 { oid => '3012',
5295 descr => 'user privilege on column by username, rel name, col name',
5296 proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool',
5297 proargtypes => 'name text text text',
5298 prosrc => 'has_column_privilege_name_name_name' },
5299 { oid => '3013',
5300 descr => 'user privilege on column by username, rel name, col attnum',
5301 proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool',
5302 proargtypes => 'name text int2 text',
5303 prosrc => 'has_column_privilege_name_name_attnum' },
5304 { oid => '3014',
5305 descr => 'user privilege on column by username, rel oid, col name',
5306 proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool',
5307 proargtypes => 'name oid text text',
5308 prosrc => 'has_column_privilege_name_id_name' },
5309 { oid => '3015',
5310 descr => 'user privilege on column by username, rel oid, col attnum',
5311 proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool',
5312 proargtypes => 'name oid int2 text',
5313 prosrc => 'has_column_privilege_name_id_attnum' },
5314 { oid => '3016',
5315 descr => 'user privilege on column by user oid, rel name, col name',
5316 proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool',
5317 proargtypes => 'oid text text text',
5318 prosrc => 'has_column_privilege_id_name_name' },
5319 { oid => '3017',
5320 descr => 'user privilege on column by user oid, rel name, col attnum',
5321 proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool',
5322 proargtypes => 'oid text int2 text',
5323 prosrc => 'has_column_privilege_id_name_attnum' },
5324 { oid => '3018',
5325 descr => 'user privilege on column by user oid, rel oid, col name',
5326 proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool',
5327 proargtypes => 'oid oid text text',
5328 prosrc => 'has_column_privilege_id_id_name' },
5329 { oid => '3019',
5330 descr => 'user privilege on column by user oid, rel oid, col attnum',
5331 proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool',
5332 proargtypes => 'oid oid int2 text',
5333 prosrc => 'has_column_privilege_id_id_attnum' },
5334 { oid => '3020',
5335 descr => 'current user privilege on column by rel name, col name',
5336 proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool',
5337 proargtypes => 'text text text', prosrc => 'has_column_privilege_name_name' },
5338 { oid => '3021',
5339 descr => 'current user privilege on column by rel name, col attnum',
5340 proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool',
5341 proargtypes => 'text int2 text',
5342 prosrc => 'has_column_privilege_name_attnum' },
5343 { oid => '3022',
5344 descr => 'current user privilege on column by rel oid, col name',
5345 proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool',
5346 proargtypes => 'oid text text', prosrc => 'has_column_privilege_id_name' },
5347 { oid => '3023',
5348 descr => 'current user privilege on column by rel oid, col attnum',
5349 proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool',
5350 proargtypes => 'oid int2 text', prosrc => 'has_column_privilege_id_attnum' },
5352 { oid => '3024',
5353 descr => 'user privilege on any column by username, rel name',
5354 proname => 'has_any_column_privilege', procost => '10', provolatile => 's',
5355 prorettype => 'bool', proargtypes => 'name text text',
5356 prosrc => 'has_any_column_privilege_name_name' },
5357 { oid => '3025', descr => 'user privilege on any column by username, rel oid',
5358 proname => 'has_any_column_privilege', procost => '10', provolatile => 's',
5359 prorettype => 'bool', proargtypes => 'name oid text',
5360 prosrc => 'has_any_column_privilege_name_id' },
5361 { oid => '3026',
5362 descr => 'user privilege on any column by user oid, rel name',
5363 proname => 'has_any_column_privilege', procost => '10', provolatile => 's',
5364 prorettype => 'bool', proargtypes => 'oid text text',
5365 prosrc => 'has_any_column_privilege_id_name' },
5366 { oid => '3027', descr => 'user privilege on any column by user oid, rel oid',
5367 proname => 'has_any_column_privilege', procost => '10', provolatile => 's',
5368 prorettype => 'bool', proargtypes => 'oid oid text',
5369 prosrc => 'has_any_column_privilege_id_id' },
5370 { oid => '3028', descr => 'current user privilege on any column by rel name',
5371 proname => 'has_any_column_privilege', procost => '10', provolatile => 's',
5372 prorettype => 'bool', proargtypes => 'text text',
5373 prosrc => 'has_any_column_privilege_name' },
5374 { oid => '3029', descr => 'current user privilege on any column by rel oid',
5375 proname => 'has_any_column_privilege', procost => '10', provolatile => 's',
5376 prorettype => 'bool', proargtypes => 'oid text',
5377 prosrc => 'has_any_column_privilege_id' },
5379 { oid => '8048',
5380 descr => 'user privilege on large object by username, large object oid',
5381 proname => 'has_largeobject_privilege', procost => '10', provolatile => 's',
5382 prorettype => 'bool', proargtypes => 'name oid text',
5383 prosrc => 'has_largeobject_privilege_name_id' },
5384 { oid => '8049',
5385 descr => 'current user privilege on large object by large object oid',
5386 proname => 'has_largeobject_privilege', procost => '10', provolatile => 's',
5387 prorettype => 'bool', proargtypes => 'oid text',
5388 prosrc => 'has_largeobject_privilege_id' },
5389 { oid => '8050',
5390 descr => 'user privilege on large object by user oid, large object oid',
5391 proname => 'has_largeobject_privilege', procost => '10', provolatile => 's',
5392 prorettype => 'bool', proargtypes => 'oid oid text',
5393 prosrc => 'has_largeobject_privilege_id_id' },
5395 { oid => '3355', descr => 'I/O',
5396 proname => 'pg_ndistinct_in', prorettype => 'pg_ndistinct',
5397 proargtypes => 'cstring', prosrc => 'pg_ndistinct_in' },
5398 { oid => '3356', descr => 'I/O',
5399 proname => 'pg_ndistinct_out', prorettype => 'cstring',
5400 proargtypes => 'pg_ndistinct', prosrc => 'pg_ndistinct_out' },
5401 { oid => '3357', descr => 'I/O',
5402 proname => 'pg_ndistinct_recv', provolatile => 's',
5403 prorettype => 'pg_ndistinct', proargtypes => 'internal',
5404 prosrc => 'pg_ndistinct_recv' },
5405 { oid => '3358', descr => 'I/O',
5406 proname => 'pg_ndistinct_send', provolatile => 's', prorettype => 'bytea',
5407 proargtypes => 'pg_ndistinct', prosrc => 'pg_ndistinct_send' },
5409 { oid => '3404', descr => 'I/O',
5410 proname => 'pg_dependencies_in', prorettype => 'pg_dependencies',
5411 proargtypes => 'cstring', prosrc => 'pg_dependencies_in' },
5412 { oid => '3405', descr => 'I/O',
5413 proname => 'pg_dependencies_out', prorettype => 'cstring',
5414 proargtypes => 'pg_dependencies', prosrc => 'pg_dependencies_out' },
5415 { oid => '3406', descr => 'I/O',
5416 proname => 'pg_dependencies_recv', provolatile => 's',
5417 prorettype => 'pg_dependencies', proargtypes => 'internal',
5418 prosrc => 'pg_dependencies_recv' },
5419 { oid => '3407', descr => 'I/O',
5420 proname => 'pg_dependencies_send', provolatile => 's', prorettype => 'bytea',
5421 proargtypes => 'pg_dependencies', prosrc => 'pg_dependencies_send' },
5423 { oid => '5018', descr => 'I/O',
5424 proname => 'pg_mcv_list_in', prorettype => 'pg_mcv_list',
5425 proargtypes => 'cstring', prosrc => 'pg_mcv_list_in' },
5426 { oid => '5019', descr => 'I/O',
5427 proname => 'pg_mcv_list_out', prorettype => 'cstring',
5428 proargtypes => 'pg_mcv_list', prosrc => 'pg_mcv_list_out' },
5429 { oid => '5020', descr => 'I/O',
5430 proname => 'pg_mcv_list_recv', provolatile => 's',
5431 prorettype => 'pg_mcv_list', proargtypes => 'internal',
5432 prosrc => 'pg_mcv_list_recv' },
5433 { oid => '5021', descr => 'I/O',
5434 proname => 'pg_mcv_list_send', provolatile => 's', prorettype => 'bytea',
5435 proargtypes => 'pg_mcv_list', prosrc => 'pg_mcv_list_send' },
5437 { oid => '3427', descr => 'details about MCV list items',
5438 proname => 'pg_mcv_list_items', prorows => '1000', proretset => 't',
5439 provolatile => 's', prorettype => 'record', proargtypes => 'pg_mcv_list',
5440 proallargtypes => '{pg_mcv_list,int4,_text,_bool,float8,float8}',
5441 proargmodes => '{i,o,o,o,o,o}',
5442 proargnames => '{mcv_list,index,values,nulls,frequency,base_frequency}',
5443 prosrc => 'pg_stats_ext_mcvlist_items' },
5445 { oid => '1928', descr => 'statistics: number of scans done for table/index',
5446 proname => 'pg_stat_get_numscans', provolatile => 's', proparallel => 'r',
5447 prorettype => 'int8', proargtypes => 'oid',
5448 prosrc => 'pg_stat_get_numscans' },
5449 { oid => '6310', descr => 'statistics: time of the last scan for table/index',
5450 proname => 'pg_stat_get_lastscan', provolatile => 's', proparallel => 'r',
5451 prorettype => 'timestamptz', proargtypes => 'oid',
5452 prosrc => 'pg_stat_get_lastscan' },
5453 { oid => '1929', descr => 'statistics: number of tuples read by seqscan',
5454 proname => 'pg_stat_get_tuples_returned', provolatile => 's',
5455 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5456 prosrc => 'pg_stat_get_tuples_returned' },
5457 { oid => '1930', descr => 'statistics: number of tuples fetched by idxscan',
5458 proname => 'pg_stat_get_tuples_fetched', provolatile => 's',
5459 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5460 prosrc => 'pg_stat_get_tuples_fetched' },
5461 { oid => '1931', descr => 'statistics: number of tuples inserted',
5462 proname => 'pg_stat_get_tuples_inserted', provolatile => 's',
5463 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5464 prosrc => 'pg_stat_get_tuples_inserted' },
5465 { oid => '1932', descr => 'statistics: number of tuples updated',
5466 proname => 'pg_stat_get_tuples_updated', provolatile => 's',
5467 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5468 prosrc => 'pg_stat_get_tuples_updated' },
5469 { oid => '1933', descr => 'statistics: number of tuples deleted',
5470 proname => 'pg_stat_get_tuples_deleted', provolatile => 's',
5471 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5472 prosrc => 'pg_stat_get_tuples_deleted' },
5473 { oid => '1972', descr => 'statistics: number of tuples hot updated',
5474 proname => 'pg_stat_get_tuples_hot_updated', provolatile => 's',
5475 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5476 prosrc => 'pg_stat_get_tuples_hot_updated' },
5477 { oid => '6217',
5478 descr => 'statistics: number of tuples updated onto a new page',
5479 proname => 'pg_stat_get_tuples_newpage_updated', provolatile => 's',
5480 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5481 prosrc => 'pg_stat_get_tuples_newpage_updated' },
5482 { oid => '2878', descr => 'statistics: number of live tuples',
5483 proname => 'pg_stat_get_live_tuples', provolatile => 's', proparallel => 'r',
5484 prorettype => 'int8', proargtypes => 'oid',
5485 prosrc => 'pg_stat_get_live_tuples' },
5486 { oid => '2879', descr => 'statistics: number of dead tuples',
5487 proname => 'pg_stat_get_dead_tuples', provolatile => 's', proparallel => 'r',
5488 prorettype => 'int8', proargtypes => 'oid',
5489 prosrc => 'pg_stat_get_dead_tuples' },
5490 { oid => '3177',
5491 descr => 'statistics: number of tuples changed since last analyze',
5492 proname => 'pg_stat_get_mod_since_analyze', provolatile => 's',
5493 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5494 prosrc => 'pg_stat_get_mod_since_analyze' },
5495 { oid => '5053',
5496 descr => 'statistics: number of tuples inserted since last vacuum',
5497 proname => 'pg_stat_get_ins_since_vacuum', provolatile => 's',
5498 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5499 prosrc => 'pg_stat_get_ins_since_vacuum' },
5500 { oid => '1934', descr => 'statistics: number of blocks fetched',
5501 proname => 'pg_stat_get_blocks_fetched', provolatile => 's',
5502 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5503 prosrc => 'pg_stat_get_blocks_fetched' },
5504 { oid => '1935', descr => 'statistics: number of blocks found in cache',
5505 proname => 'pg_stat_get_blocks_hit', provolatile => 's', proparallel => 'r',
5506 prorettype => 'int8', proargtypes => 'oid',
5507 prosrc => 'pg_stat_get_blocks_hit' },
5508 { oid => '2781', descr => 'statistics: last manual vacuum time for a table',
5509 proname => 'pg_stat_get_last_vacuum_time', provolatile => 's',
5510 proparallel => 'r', prorettype => 'timestamptz', proargtypes => 'oid',
5511 prosrc => 'pg_stat_get_last_vacuum_time' },
5512 { oid => '2782', descr => 'statistics: last auto vacuum time for a table',
5513 proname => 'pg_stat_get_last_autovacuum_time', provolatile => 's',
5514 proparallel => 'r', prorettype => 'timestamptz', proargtypes => 'oid',
5515 prosrc => 'pg_stat_get_last_autovacuum_time' },
5516 { oid => '2783', descr => 'statistics: last manual analyze time for a table',
5517 proname => 'pg_stat_get_last_analyze_time', provolatile => 's',
5518 proparallel => 'r', prorettype => 'timestamptz', proargtypes => 'oid',
5519 prosrc => 'pg_stat_get_last_analyze_time' },
5520 { oid => '2784', descr => 'statistics: last auto analyze time for a table',
5521 proname => 'pg_stat_get_last_autoanalyze_time', provolatile => 's',
5522 proparallel => 'r', prorettype => 'timestamptz', proargtypes => 'oid',
5523 prosrc => 'pg_stat_get_last_autoanalyze_time' },
5524 { oid => '3054', descr => 'statistics: number of manual vacuums for a table',
5525 proname => 'pg_stat_get_vacuum_count', provolatile => 's', proparallel => 'r',
5526 prorettype => 'int8', proargtypes => 'oid',
5527 prosrc => 'pg_stat_get_vacuum_count' },
5528 { oid => '3055', descr => 'statistics: number of auto vacuums for a table',
5529 proname => 'pg_stat_get_autovacuum_count', provolatile => 's',
5530 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5531 prosrc => 'pg_stat_get_autovacuum_count' },
5532 { oid => '3056', descr => 'statistics: number of manual analyzes for a table',
5533 proname => 'pg_stat_get_analyze_count', provolatile => 's',
5534 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5535 prosrc => 'pg_stat_get_analyze_count' },
5536 { oid => '3057', descr => 'statistics: number of auto analyzes for a table',
5537 proname => 'pg_stat_get_autoanalyze_count', provolatile => 's',
5538 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5539 prosrc => 'pg_stat_get_autoanalyze_count' },
5540 { oid => '1936', descr => 'statistics: currently active backend IDs',
5541 proname => 'pg_stat_get_backend_idset', prorows => '100', proretset => 't',
5542 provolatile => 's', proparallel => 'r', prorettype => 'int4',
5543 proargtypes => '', prosrc => 'pg_stat_get_backend_idset' },
5544 { oid => '2022',
5545 descr => 'statistics: information about currently active backends',
5546 proname => 'pg_stat_get_activity', prorows => '100', proisstrict => 'f',
5547 proretset => 't', provolatile => 's', proparallel => 'r',
5548 prorettype => 'record', proargtypes => 'int4',
5549 proallargtypes => '{int4,oid,int4,oid,text,text,text,text,text,timestamptz,timestamptz,timestamptz,timestamptz,inet,text,int4,xid,xid,text,bool,text,text,int4,text,numeric,text,bool,text,bool,bool,int4,int8}',
5550 proargmodes => '{i,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o}',
5551 proargnames => '{pid,datid,pid,usesysid,application_name,state,query,wait_event_type,wait_event,xact_start,query_start,backend_start,state_change,client_addr,client_hostname,client_port,backend_xid,backend_xmin,backend_type,ssl,sslversion,sslcipher,sslbits,ssl_client_dn,ssl_client_serial,ssl_issuer_dn,gss_auth,gss_princ,gss_enc,gss_delegation,leader_pid,query_id}',
5552 prosrc => 'pg_stat_get_activity' },
5553 { oid => '6318', descr => 'describe wait events',
5554 proname => 'pg_get_wait_events', procost => '10', prorows => '250',
5555 proretset => 't', provolatile => 'v', prorettype => 'record',
5556 proargtypes => '', proallargtypes => '{text,text,text}',
5557 proargmodes => '{o,o,o}', proargnames => '{type,name,description}',
5558 prosrc => 'pg_get_wait_events' },
5559 { oid => '3318',
5560 descr => 'statistics: information about progress of backends running maintenance command',
5561 proname => 'pg_stat_get_progress_info', prorows => '100', proretset => 't',
5562 provolatile => 's', proparallel => 'r', prorettype => 'record',
5563 proargtypes => 'text',
5564 proallargtypes => '{text,int4,oid,oid,int8,int8,int8,int8,int8,int8,int8,int8,int8,int8,int8,int8,int8,int8,int8,int8,int8,int8,int8,int8}',
5565 proargmodes => '{i,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o}',
5566 proargnames => '{cmdtype,pid,datid,relid,param1,param2,param3,param4,param5,param6,param7,param8,param9,param10,param11,param12,param13,param14,param15,param16,param17,param18,param19,param20}',
5567 prosrc => 'pg_stat_get_progress_info' },
5568 { oid => '3099',
5569 descr => 'statistics: information about currently active replication',
5570 proname => 'pg_stat_get_wal_senders', prorows => '10', proisstrict => 'f',
5571 proretset => 't', provolatile => 's', proparallel => 'r',
5572 prorettype => 'record', proargtypes => '',
5573 proallargtypes => '{int4,text,pg_lsn,pg_lsn,pg_lsn,pg_lsn,interval,interval,interval,int4,text,timestamptz}',
5574 proargmodes => '{o,o,o,o,o,o,o,o,o,o,o,o}',
5575 proargnames => '{pid,state,sent_lsn,write_lsn,flush_lsn,replay_lsn,write_lag,flush_lag,replay_lag,sync_priority,sync_state,reply_time}',
5576 prosrc => 'pg_stat_get_wal_senders' },
5577 { oid => '3317', descr => 'statistics: information about WAL receiver',
5578 proname => 'pg_stat_get_wal_receiver', proisstrict => 'f', provolatile => 's',
5579 proparallel => 'r', prorettype => 'record', proargtypes => '',
5580 proallargtypes => '{int4,text,pg_lsn,int4,pg_lsn,pg_lsn,int4,timestamptz,timestamptz,pg_lsn,timestamptz,text,text,int4,text}',
5581 proargmodes => '{o,o,o,o,o,o,o,o,o,o,o,o,o,o,o}',
5582 proargnames => '{pid,status,receive_start_lsn,receive_start_tli,written_lsn,flushed_lsn,received_tli,last_msg_send_time,last_msg_receipt_time,latest_end_lsn,latest_end_time,slot_name,sender_host,sender_port,conninfo}',
5583 prosrc => 'pg_stat_get_wal_receiver' },
5584 { oid => '6169', descr => 'statistics: information about replication slot',
5585 proname => 'pg_stat_get_replication_slot', provolatile => 's',
5586 proparallel => 'r', prorettype => 'record', proargtypes => 'text',
5587 proallargtypes => '{text,text,int8,int8,int8,int8,int8,int8,int8,int8,timestamptz}',
5588 proargmodes => '{i,o,o,o,o,o,o,o,o,o,o}',
5589 proargnames => '{slot_name,slot_name,spill_txns,spill_count,spill_bytes,stream_txns,stream_count,stream_bytes,total_txns,total_bytes,stats_reset}',
5590 prosrc => 'pg_stat_get_replication_slot' },
5592 { oid => '6230', descr => 'statistics: check if a stats object exists',
5593 proname => 'pg_stat_have_stats', provolatile => 'v', proparallel => 'r',
5594 prorettype => 'bool', proargtypes => 'text oid int8',
5595 prosrc => 'pg_stat_have_stats' },
5597 { oid => '6231', descr => 'statistics: information about subscription stats',
5598 proname => 'pg_stat_get_subscription_stats', provolatile => 's',
5599 proparallel => 'r', prorettype => 'record', proargtypes => 'oid',
5600 proallargtypes => '{oid,oid,int8,int8,int8,int8,int8,int8,int8,int8,timestamptz}',
5601 proargmodes => '{i,o,o,o,o,o,o,o,o,o,o}',
5602 proargnames => '{subid,subid,apply_error_count,sync_error_count,confl_insert_exists,confl_update_origin_differs,confl_update_exists,confl_update_missing,confl_delete_origin_differs,confl_delete_missing,stats_reset}',
5603 prosrc => 'pg_stat_get_subscription_stats' },
5604 { oid => '6118', descr => 'statistics: information about subscription',
5605 proname => 'pg_stat_get_subscription', prorows => '10', proisstrict => 'f',
5606 proretset => 't', provolatile => 's', proparallel => 'r',
5607 prorettype => 'record', proargtypes => 'oid',
5608 proallargtypes => '{oid,oid,oid,int4,int4,pg_lsn,timestamptz,timestamptz,pg_lsn,timestamptz,text}',
5609 proargmodes => '{i,o,o,o,o,o,o,o,o,o,o}',
5610 proargnames => '{subid,subid,relid,pid,leader_pid,received_lsn,last_msg_send_time,last_msg_receipt_time,latest_end_lsn,latest_end_time,worker_type}',
5611 prosrc => 'pg_stat_get_subscription' },
5612 { oid => '2026', descr => 'statistics: current backend PID',
5613 proname => 'pg_backend_pid', provolatile => 's', proparallel => 'r',
5614 prorettype => 'int4', proargtypes => '', prosrc => 'pg_backend_pid' },
5615 { oid => '1937', descr => 'statistics: PID of backend',
5616 proname => 'pg_stat_get_backend_pid', provolatile => 's', proparallel => 'r',
5617 prorettype => 'int4', proargtypes => 'int4',
5618 prosrc => 'pg_stat_get_backend_pid' },
5619 { oid => '1938', descr => 'statistics: database ID of backend',
5620 proname => 'pg_stat_get_backend_dbid', provolatile => 's', proparallel => 'r',
5621 prorettype => 'oid', proargtypes => 'int4',
5622 prosrc => 'pg_stat_get_backend_dbid' },
5623 { oid => '6107', descr => 'statistics: get subtransaction status of backend',
5624 proname => 'pg_stat_get_backend_subxact', provolatile => 's',
5625 proparallel => 'r', prorettype => 'record', proargtypes => 'int4',
5626 proallargtypes => '{int4,int4,bool}', proargmodes => '{i,o,o}',
5627 proargnames => '{bid,subxact_count,subxact_overflowed}',
5628 prosrc => 'pg_stat_get_backend_subxact' },
5629 { oid => '1939', descr => 'statistics: user ID of backend',
5630 proname => 'pg_stat_get_backend_userid', provolatile => 's',
5631 proparallel => 'r', prorettype => 'oid', proargtypes => 'int4',
5632 prosrc => 'pg_stat_get_backend_userid' },
5633 { oid => '1940', descr => 'statistics: current query of backend',
5634 proname => 'pg_stat_get_backend_activity', provolatile => 's',
5635 proparallel => 'r', prorettype => 'text', proargtypes => 'int4',
5636 prosrc => 'pg_stat_get_backend_activity' },
5637 { oid => '2788',
5638 descr => 'statistics: wait event type on which backend is currently waiting',
5639 proname => 'pg_stat_get_backend_wait_event_type', provolatile => 's',
5640 proparallel => 'r', prorettype => 'text', proargtypes => 'int4',
5641 prosrc => 'pg_stat_get_backend_wait_event_type' },
5642 { oid => '2853',
5643 descr => 'statistics: wait event on which backend is currently waiting',
5644 proname => 'pg_stat_get_backend_wait_event', provolatile => 's',
5645 proparallel => 'r', prorettype => 'text', proargtypes => 'int4',
5646 prosrc => 'pg_stat_get_backend_wait_event' },
5647 { oid => '2094',
5648 descr => 'statistics: start time for current query of backend',
5649 proname => 'pg_stat_get_backend_activity_start', provolatile => 's',
5650 proparallel => 'r', prorettype => 'timestamptz', proargtypes => 'int4',
5651 prosrc => 'pg_stat_get_backend_activity_start' },
5652 { oid => '2857',
5653 descr => 'statistics: start time for backend\'s current transaction',
5654 proname => 'pg_stat_get_backend_xact_start', provolatile => 's',
5655 proparallel => 'r', prorettype => 'timestamptz', proargtypes => 'int4',
5656 prosrc => 'pg_stat_get_backend_xact_start' },
5657 { oid => '1391',
5658 descr => 'statistics: start time for current backend session',
5659 proname => 'pg_stat_get_backend_start', provolatile => 's',
5660 proparallel => 'r', prorettype => 'timestamptz', proargtypes => 'int4',
5661 prosrc => 'pg_stat_get_backend_start' },
5662 { oid => '1392',
5663 descr => 'statistics: address of client connected to backend',
5664 proname => 'pg_stat_get_backend_client_addr', provolatile => 's',
5665 proparallel => 'r', prorettype => 'inet', proargtypes => 'int4',
5666 prosrc => 'pg_stat_get_backend_client_addr' },
5667 { oid => '1393',
5668 descr => 'statistics: port number of client connected to backend',
5669 proname => 'pg_stat_get_backend_client_port', provolatile => 's',
5670 proparallel => 'r', prorettype => 'int4', proargtypes => 'int4',
5671 prosrc => 'pg_stat_get_backend_client_port' },
5672 { oid => '1941', descr => 'statistics: number of backends in database',
5673 proname => 'pg_stat_get_db_numbackends', provolatile => 's',
5674 proparallel => 'r', prorettype => 'int4', proargtypes => 'oid',
5675 prosrc => 'pg_stat_get_db_numbackends' },
5676 { oid => '1942', descr => 'statistics: transactions committed',
5677 proname => 'pg_stat_get_db_xact_commit', provolatile => 's',
5678 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5679 prosrc => 'pg_stat_get_db_xact_commit' },
5680 { oid => '1943', descr => 'statistics: transactions rolled back',
5681 proname => 'pg_stat_get_db_xact_rollback', provolatile => 's',
5682 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5683 prosrc => 'pg_stat_get_db_xact_rollback' },
5684 { oid => '1944', descr => 'statistics: blocks fetched for database',
5685 proname => 'pg_stat_get_db_blocks_fetched', provolatile => 's',
5686 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5687 prosrc => 'pg_stat_get_db_blocks_fetched' },
5688 { oid => '1945', descr => 'statistics: blocks found in cache for database',
5689 proname => 'pg_stat_get_db_blocks_hit', provolatile => 's',
5690 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5691 prosrc => 'pg_stat_get_db_blocks_hit' },
5692 { oid => '2758', descr => 'statistics: tuples returned for database',
5693 proname => 'pg_stat_get_db_tuples_returned', provolatile => 's',
5694 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5695 prosrc => 'pg_stat_get_db_tuples_returned' },
5696 { oid => '2759', descr => 'statistics: tuples fetched for database',
5697 proname => 'pg_stat_get_db_tuples_fetched', provolatile => 's',
5698 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5699 prosrc => 'pg_stat_get_db_tuples_fetched' },
5700 { oid => '2760', descr => 'statistics: tuples inserted in database',
5701 proname => 'pg_stat_get_db_tuples_inserted', provolatile => 's',
5702 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5703 prosrc => 'pg_stat_get_db_tuples_inserted' },
5704 { oid => '2761', descr => 'statistics: tuples updated in database',
5705 proname => 'pg_stat_get_db_tuples_updated', provolatile => 's',
5706 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5707 prosrc => 'pg_stat_get_db_tuples_updated' },
5708 { oid => '2762', descr => 'statistics: tuples deleted in database',
5709 proname => 'pg_stat_get_db_tuples_deleted', provolatile => 's',
5710 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5711 prosrc => 'pg_stat_get_db_tuples_deleted' },
5712 { oid => '3065',
5713 descr => 'statistics: recovery conflicts in database caused by drop tablespace',
5714 proname => 'pg_stat_get_db_conflict_tablespace', provolatile => 's',
5715 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5716 prosrc => 'pg_stat_get_db_conflict_tablespace' },
5717 { oid => '3066',
5718 descr => 'statistics: recovery conflicts in database caused by relation lock',
5719 proname => 'pg_stat_get_db_conflict_lock', provolatile => 's',
5720 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5721 prosrc => 'pg_stat_get_db_conflict_lock' },
5722 { oid => '3067',
5723 descr => 'statistics: recovery conflicts in database caused by snapshot expiry',
5724 proname => 'pg_stat_get_db_conflict_snapshot', provolatile => 's',
5725 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5726 prosrc => 'pg_stat_get_db_conflict_snapshot' },
5727 { oid => '6309',
5728 descr => 'statistics: recovery conflicts in database caused by logical replication slot',
5729 proname => 'pg_stat_get_db_conflict_logicalslot', provolatile => 's',
5730 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5731 prosrc => 'pg_stat_get_db_conflict_logicalslot' },
5732 { oid => '3068',
5733 descr => 'statistics: recovery conflicts in database caused by shared buffer pin',
5734 proname => 'pg_stat_get_db_conflict_bufferpin', provolatile => 's',
5735 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5736 prosrc => 'pg_stat_get_db_conflict_bufferpin' },
5737 { oid => '3069',
5738 descr => 'statistics: recovery conflicts in database caused by buffer deadlock',
5739 proname => 'pg_stat_get_db_conflict_startup_deadlock', provolatile => 's',
5740 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5741 prosrc => 'pg_stat_get_db_conflict_startup_deadlock' },
5742 { oid => '3070', descr => 'statistics: recovery conflicts in database',
5743 proname => 'pg_stat_get_db_conflict_all', provolatile => 's',
5744 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5745 prosrc => 'pg_stat_get_db_conflict_all' },
5746 { oid => '3152', descr => 'statistics: deadlocks detected in database',
5747 proname => 'pg_stat_get_db_deadlocks', provolatile => 's', proparallel => 'r',
5748 prorettype => 'int8', proargtypes => 'oid',
5749 prosrc => 'pg_stat_get_db_deadlocks' },
5750 { oid => '3426',
5751 descr => 'statistics: checksum failures detected in database',
5752 proname => 'pg_stat_get_db_checksum_failures', provolatile => 's',
5753 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5754 prosrc => 'pg_stat_get_db_checksum_failures' },
5755 { oid => '3428',
5756 descr => 'statistics: when last checksum failure was detected in database',
5757 proname => 'pg_stat_get_db_checksum_last_failure', provolatile => 's',
5758 proparallel => 'r', prorettype => 'timestamptz', proargtypes => 'oid',
5759 prosrc => 'pg_stat_get_db_checksum_last_failure' },
5760 { oid => '3074', descr => 'statistics: last reset for a database',
5761 proname => 'pg_stat_get_db_stat_reset_time', provolatile => 's',
5762 proparallel => 'r', prorettype => 'timestamptz', proargtypes => 'oid',
5763 prosrc => 'pg_stat_get_db_stat_reset_time' },
5764 { oid => '3150', descr => 'statistics: number of temporary files written',
5765 proname => 'pg_stat_get_db_temp_files', provolatile => 's',
5766 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5767 prosrc => 'pg_stat_get_db_temp_files' },
5768 { oid => '3151',
5769 descr => 'statistics: number of bytes in temporary files written',
5770 proname => 'pg_stat_get_db_temp_bytes', provolatile => 's',
5771 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5772 prosrc => 'pg_stat_get_db_temp_bytes' },
5773 { oid => '2844', descr => 'statistics: block read time, in milliseconds',
5774 proname => 'pg_stat_get_db_blk_read_time', provolatile => 's',
5775 proparallel => 'r', prorettype => 'float8', proargtypes => 'oid',
5776 prosrc => 'pg_stat_get_db_blk_read_time' },
5777 { oid => '2845', descr => 'statistics: block write time, in milliseconds',
5778 proname => 'pg_stat_get_db_blk_write_time', provolatile => 's',
5779 proparallel => 'r', prorettype => 'float8', proargtypes => 'oid',
5780 prosrc => 'pg_stat_get_db_blk_write_time' },
5781 { oid => '6185', descr => 'statistics: session time, in milliseconds',
5782 proname => 'pg_stat_get_db_session_time', provolatile => 's',
5783 proparallel => 'r', prorettype => 'float8', proargtypes => 'oid',
5784 prosrc => 'pg_stat_get_db_session_time' },
5785 { oid => '6186', descr => 'statistics: session active time, in milliseconds',
5786 proname => 'pg_stat_get_db_active_time', provolatile => 's',
5787 proparallel => 'r', prorettype => 'float8', proargtypes => 'oid',
5788 prosrc => 'pg_stat_get_db_active_time' },
5789 { oid => '6187',
5790 descr => 'statistics: session idle in transaction time, in milliseconds',
5791 proname => 'pg_stat_get_db_idle_in_transaction_time', provolatile => 's',
5792 proparallel => 'r', prorettype => 'float8', proargtypes => 'oid',
5793 prosrc => 'pg_stat_get_db_idle_in_transaction_time' },
5794 { oid => '6188', descr => 'statistics: total number of sessions',
5795 proname => 'pg_stat_get_db_sessions', provolatile => 's', proparallel => 'r',
5796 prorettype => 'int8', proargtypes => 'oid',
5797 prosrc => 'pg_stat_get_db_sessions' },
5798 { oid => '6189',
5799 descr => 'statistics: number of sessions disconnected by the client closing the network connection',
5800 proname => 'pg_stat_get_db_sessions_abandoned', provolatile => 's',
5801 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5802 prosrc => 'pg_stat_get_db_sessions_abandoned' },
5803 { oid => '6190',
5804 descr => 'statistics: number of sessions disconnected by fatal errors',
5805 proname => 'pg_stat_get_db_sessions_fatal', provolatile => 's',
5806 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5807 prosrc => 'pg_stat_get_db_sessions_fatal' },
5808 { oid => '6191',
5809 descr => 'statistics: number of sessions killed by administrative action',
5810 proname => 'pg_stat_get_db_sessions_killed', provolatile => 's',
5811 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5812 prosrc => 'pg_stat_get_db_sessions_killed' },
5813 { oid => '3195', descr => 'statistics: information about WAL archiver',
5814 proname => 'pg_stat_get_archiver', proisstrict => 'f', provolatile => 's',
5815 proparallel => 'r', prorettype => 'record', proargtypes => '',
5816 proallargtypes => '{int8,text,timestamptz,int8,text,timestamptz,timestamptz}',
5817 proargmodes => '{o,o,o,o,o,o,o}',
5818 proargnames => '{archived_count,last_archived_wal,last_archived_time,failed_count,last_failed_wal,last_failed_time,stats_reset}',
5819 prosrc => 'pg_stat_get_archiver' },
5820 { oid => '2769',
5821 descr => 'statistics: number of timed checkpoints started by the checkpointer',
5822 proname => 'pg_stat_get_checkpointer_num_timed', provolatile => 's',
5823 proparallel => 'r', prorettype => 'int8', proargtypes => '',
5824 prosrc => 'pg_stat_get_checkpointer_num_timed' },
5825 { oid => '2770',
5826 descr => 'statistics: number of requested checkpoints started by the checkpointer',
5827 proname => 'pg_stat_get_checkpointer_num_requested', provolatile => 's',
5828 proparallel => 'r', prorettype => 'int8', proargtypes => '',
5829 prosrc => 'pg_stat_get_checkpointer_num_requested' },
5830 { oid => '8599',
5831 descr => 'statistics: number of checkpoints performed by the checkpointer',
5832 proname => 'pg_stat_get_checkpointer_num_performed', provolatile => 's',
5833 proparallel => 'r', prorettype => 'int8', proargtypes => '',
5834 prosrc => 'pg_stat_get_checkpointer_num_performed' },
5835 { oid => '6327',
5836 descr => 'statistics: number of timed restartpoints started by the checkpointer',
5837 proname => 'pg_stat_get_checkpointer_restartpoints_timed', provolatile => 's',
5838 proparallel => 'r', prorettype => 'int8', proargtypes => '',
5839 prosrc => 'pg_stat_get_checkpointer_restartpoints_timed' },
5840 { oid => '6328',
5841 descr => 'statistics: number of requested restartpoints started by the checkpointer',
5842 proname => 'pg_stat_get_checkpointer_restartpoints_requested',
5843 provolatile => 's', proparallel => 'r', prorettype => 'int8',
5844 proargtypes => '',
5845 prosrc => 'pg_stat_get_checkpointer_restartpoints_requested' },
5846 { oid => '6329',
5847 descr => 'statistics: number of restartpoints performed by the checkpointer',
5848 proname => 'pg_stat_get_checkpointer_restartpoints_performed',
5849 provolatile => 's', proparallel => 'r', prorettype => 'int8',
5850 proargtypes => '',
5851 prosrc => 'pg_stat_get_checkpointer_restartpoints_performed' },
5852 { oid => '2771',
5853 descr => 'statistics: number of buffers written during checkpoints and restartpoints',
5854 proname => 'pg_stat_get_checkpointer_buffers_written', provolatile => 's',
5855 proparallel => 'r', prorettype => 'int8', proargtypes => '',
5856 prosrc => 'pg_stat_get_checkpointer_buffers_written' },
5857 { oid => '8573',
5858 descr => 'statistics: number of SLRU buffers written during checkpoints and restartpoints',
5859 proname => 'pg_stat_get_checkpointer_slru_written', provolatile => 's',
5860 proparallel => 'r', prorettype => 'int8', proargtypes => '',
5861 prosrc => 'pg_stat_get_checkpointer_slru_written' },
5862 { oid => '6314', descr => 'statistics: last reset for the checkpointer',
5863 proname => 'pg_stat_get_checkpointer_stat_reset_time', provolatile => 's',
5864 proparallel => 'r', prorettype => 'timestamptz', proargtypes => '',
5865 prosrc => 'pg_stat_get_checkpointer_stat_reset_time' },
5866 { oid => '2772',
5867 descr => 'statistics: number of buffers written by the bgwriter for cleaning dirty buffers',
5868 proname => 'pg_stat_get_bgwriter_buf_written_clean', provolatile => 's',
5869 proparallel => 'r', prorettype => 'int8', proargtypes => '',
5870 prosrc => 'pg_stat_get_bgwriter_buf_written_clean' },
5871 { oid => '2773',
5872 descr => 'statistics: number of times the bgwriter stopped processing when it had written too many buffers while cleaning',
5873 proname => 'pg_stat_get_bgwriter_maxwritten_clean', provolatile => 's',
5874 proparallel => 'r', prorettype => 'int8', proargtypes => '',
5875 prosrc => 'pg_stat_get_bgwriter_maxwritten_clean' },
5876 { oid => '3075', descr => 'statistics: last reset for the bgwriter',
5877 proname => 'pg_stat_get_bgwriter_stat_reset_time', provolatile => 's',
5878 proparallel => 'r', prorettype => 'timestamptz', proargtypes => '',
5879 prosrc => 'pg_stat_get_bgwriter_stat_reset_time' },
5880 { oid => '3160',
5881 descr => 'statistics: checkpoint/restartpoint time spent writing buffers to disk, in milliseconds',
5882 proname => 'pg_stat_get_checkpointer_write_time', provolatile => 's',
5883 proparallel => 'r', prorettype => 'float8', proargtypes => '',
5884 prosrc => 'pg_stat_get_checkpointer_write_time' },
5885 { oid => '3161',
5886 descr => 'statistics: checkpoint/restartpoint time spent synchronizing buffers to disk, in milliseconds',
5887 proname => 'pg_stat_get_checkpointer_sync_time', provolatile => 's',
5888 proparallel => 'r', prorettype => 'float8', proargtypes => '',
5889 prosrc => 'pg_stat_get_checkpointer_sync_time' },
5890 { oid => '2859', descr => 'statistics: number of buffer allocations',
5891 proname => 'pg_stat_get_buf_alloc', provolatile => 's', proparallel => 'r',
5892 prorettype => 'int8', proargtypes => '', prosrc => 'pg_stat_get_buf_alloc' },
5894 { oid => '6214', descr => 'statistics: per backend type IO statistics',
5895 proname => 'pg_stat_get_io', prorows => '30', proretset => 't',
5896 provolatile => 'v', proparallel => 'r', prorettype => 'record',
5897 proargtypes => '',
5898 proallargtypes => '{text,text,text,int8,float8,int8,float8,int8,float8,int8,float8,int8,int8,int8,int8,int8,float8,timestamptz}',
5899 proargmodes => '{o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o}',
5900 proargnames => '{backend_type,object,context,reads,read_time,writes,write_time,writebacks,writeback_time,extends,extend_time,op_bytes,hits,evictions,reuses,fsyncs,fsync_time,stats_reset}',
5901 prosrc => 'pg_stat_get_io' },
5903 { oid => '1136', descr => 'statistics: information about WAL activity',
5904 proname => 'pg_stat_get_wal', proisstrict => 'f', provolatile => 's',
5905 proparallel => 'r', prorettype => 'record', proargtypes => '',
5906 proallargtypes => '{int8,int8,numeric,int8,int8,int8,float8,float8,timestamptz}',
5907 proargmodes => '{o,o,o,o,o,o,o,o,o}',
5908 proargnames => '{wal_records,wal_fpi,wal_bytes,wal_buffers_full,wal_write,wal_sync,wal_write_time,wal_sync_time,stats_reset}',
5909 prosrc => 'pg_stat_get_wal' },
5910 { oid => '6248', descr => 'statistics: information about WAL prefetching',
5911 proname => 'pg_stat_get_recovery_prefetch', prorows => '1', proretset => 't',
5912 provolatile => 'v', prorettype => 'record', proargtypes => '',
5913 proallargtypes => '{timestamptz,int8,int8,int8,int8,int8,int8,int4,int4,int4}',
5914 proargmodes => '{o,o,o,o,o,o,o,o,o,o}',
5915 proargnames => '{stats_reset,prefetch,hit,skip_init,skip_new,skip_fpw,skip_rep,wal_distance,block_distance,io_depth}',
5916 prosrc => 'pg_stat_get_recovery_prefetch' },
5918 { oid => '2306', descr => 'statistics: information about SLRU caches',
5919 proname => 'pg_stat_get_slru', prorows => '100', proisstrict => 'f',
5920 proretset => 't', provolatile => 's', proparallel => 'r',
5921 prorettype => 'record', proargtypes => '',
5922 proallargtypes => '{text,int8,int8,int8,int8,int8,int8,int8,timestamptz}',
5923 proargmodes => '{o,o,o,o,o,o,o,o,o}',
5924 proargnames => '{name,blks_zeroed,blks_hit,blks_read,blks_written,blks_exists,flushes,truncates,stats_reset}',
5925 prosrc => 'pg_stat_get_slru' },
5927 { oid => '2978', descr => 'statistics: number of function calls',
5928 proname => 'pg_stat_get_function_calls', provolatile => 's',
5929 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5930 prosrc => 'pg_stat_get_function_calls' },
5931 { oid => '2979',
5932 descr => 'statistics: total execution time of function, in milliseconds',
5933 proname => 'pg_stat_get_function_total_time', provolatile => 's',
5934 proparallel => 'r', prorettype => 'float8', proargtypes => 'oid',
5935 prosrc => 'pg_stat_get_function_total_time' },
5936 { oid => '2980',
5937 descr => 'statistics: self execution time of function, in milliseconds',
5938 proname => 'pg_stat_get_function_self_time', provolatile => 's',
5939 proparallel => 'r', prorettype => 'float8', proargtypes => 'oid',
5940 prosrc => 'pg_stat_get_function_self_time' },
5942 { oid => '3037',
5943 descr => 'statistics: number of scans done for table/index in current transaction',
5944 proname => 'pg_stat_get_xact_numscans', provolatile => 'v',
5945 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5946 prosrc => 'pg_stat_get_xact_numscans' },
5947 { oid => '3038',
5948 descr => 'statistics: number of tuples read by seqscan in current transaction',
5949 proname => 'pg_stat_get_xact_tuples_returned', provolatile => 'v',
5950 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5951 prosrc => 'pg_stat_get_xact_tuples_returned' },
5952 { oid => '3039',
5953 descr => 'statistics: number of tuples fetched by idxscan in current transaction',
5954 proname => 'pg_stat_get_xact_tuples_fetched', provolatile => 'v',
5955 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5956 prosrc => 'pg_stat_get_xact_tuples_fetched' },
5957 { oid => '3040',
5958 descr => 'statistics: number of tuples inserted in current transaction',
5959 proname => 'pg_stat_get_xact_tuples_inserted', provolatile => 'v',
5960 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5961 prosrc => 'pg_stat_get_xact_tuples_inserted' },
5962 { oid => '3041',
5963 descr => 'statistics: number of tuples updated in current transaction',
5964 proname => 'pg_stat_get_xact_tuples_updated', provolatile => 'v',
5965 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5966 prosrc => 'pg_stat_get_xact_tuples_updated' },
5967 { oid => '3042',
5968 descr => 'statistics: number of tuples deleted in current transaction',
5969 proname => 'pg_stat_get_xact_tuples_deleted', provolatile => 'v',
5970 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5971 prosrc => 'pg_stat_get_xact_tuples_deleted' },
5972 { oid => '3043',
5973 descr => 'statistics: number of tuples hot updated in current transaction',
5974 proname => 'pg_stat_get_xact_tuples_hot_updated', provolatile => 'v',
5975 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5976 prosrc => 'pg_stat_get_xact_tuples_hot_updated' },
5977 { oid => '6218',
5978 descr => 'statistics: number of tuples updated onto a new page in current transaction',
5979 proname => 'pg_stat_get_xact_tuples_newpage_updated', provolatile => 'v',
5980 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5981 prosrc => 'pg_stat_get_xact_tuples_newpage_updated' },
5982 { oid => '3044',
5983 descr => 'statistics: number of blocks fetched in current transaction',
5984 proname => 'pg_stat_get_xact_blocks_fetched', provolatile => 'v',
5985 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5986 prosrc => 'pg_stat_get_xact_blocks_fetched' },
5987 { oid => '3045',
5988 descr => 'statistics: number of blocks found in cache in current transaction',
5989 proname => 'pg_stat_get_xact_blocks_hit', provolatile => 'v',
5990 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5991 prosrc => 'pg_stat_get_xact_blocks_hit' },
5992 { oid => '3046',
5993 descr => 'statistics: number of function calls in current transaction',
5994 proname => 'pg_stat_get_xact_function_calls', provolatile => 'v',
5995 proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5996 prosrc => 'pg_stat_get_xact_function_calls' },
5997 { oid => '3047',
5998 descr => 'statistics: total execution time of function in current transaction, in milliseconds',
5999 proname => 'pg_stat_get_xact_function_total_time', provolatile => 'v',
6000 proparallel => 'r', prorettype => 'float8', proargtypes => 'oid',
6001 prosrc => 'pg_stat_get_xact_function_total_time' },
6002 { oid => '3048',
6003 descr => 'statistics: self execution time of function in current transaction, in milliseconds',
6004 proname => 'pg_stat_get_xact_function_self_time', provolatile => 'v',
6005 proparallel => 'r', prorettype => 'float8', proargtypes => 'oid',
6006 prosrc => 'pg_stat_get_xact_function_self_time' },
6008 { oid => '3788',
6009 descr => 'statistics: timestamp of the current statistics snapshot',
6010 proname => 'pg_stat_get_snapshot_timestamp', provolatile => 's',
6011 proparallel => 'r', prorettype => 'timestamptz', proargtypes => '',
6012 prosrc => 'pg_stat_get_snapshot_timestamp' },
6013 { oid => '2230',
6014 descr => 'statistics: discard current transaction\'s statistics snapshot',
6015 proname => 'pg_stat_clear_snapshot', proisstrict => 'f', provolatile => 'v',
6016 proparallel => 'r', prorettype => 'void', proargtypes => '',
6017 prosrc => 'pg_stat_clear_snapshot' },
6018 { oid => '2137',
6019 descr => 'statistics: force stats to be flushed after the next commit',
6020 proname => 'pg_stat_force_next_flush', proisstrict => 'f', provolatile => 'v',
6021 proparallel => 'r', prorettype => 'void', proargtypes => '',
6022 prosrc => 'pg_stat_force_next_flush' },
6023 { oid => '2274',
6024 descr => 'statistics: reset collected statistics for current database',
6025 proname => 'pg_stat_reset', proisstrict => 'f', provolatile => 'v',
6026 prorettype => 'void', proargtypes => '', prosrc => 'pg_stat_reset' },
6027 { oid => '3775',
6028 descr => 'statistics: reset collected statistics shared across the cluster',
6029 proname => 'pg_stat_reset_shared', proisstrict => 'f', provolatile => 'v',
6030 prorettype => 'void', proargtypes => 'text',
6031 prosrc => 'pg_stat_reset_shared' },
6032 { oid => '3776',
6033 descr => 'statistics: reset collected statistics for a single table or index in the current database or shared across all databases in the cluster',
6034 proname => 'pg_stat_reset_single_table_counters', provolatile => 'v',
6035 prorettype => 'void', proargtypes => 'oid',
6036 prosrc => 'pg_stat_reset_single_table_counters' },
6037 { oid => '3777',
6038 descr => 'statistics: reset collected statistics for a single function in the current database',
6039 proname => 'pg_stat_reset_single_function_counters', provolatile => 'v',
6040 prorettype => 'void', proargtypes => 'oid',
6041 prosrc => 'pg_stat_reset_single_function_counters' },
6042 { oid => '2307',
6043 descr => 'statistics: reset collected statistics for a single SLRU',
6044 proname => 'pg_stat_reset_slru', proisstrict => 'f', provolatile => 'v',
6045 prorettype => 'void', proargtypes => 'text', proargnames => '{target}',
6046 prosrc => 'pg_stat_reset_slru' },
6047 { oid => '6170',
6048 descr => 'statistics: reset collected statistics for a single replication slot',
6049 proname => 'pg_stat_reset_replication_slot', proisstrict => 'f',
6050 provolatile => 'v', prorettype => 'void', proargtypes => 'text',
6051 prosrc => 'pg_stat_reset_replication_slot' },
6052 { oid => '6232',
6053 descr => 'statistics: reset collected statistics for a single subscription',
6054 proname => 'pg_stat_reset_subscription_stats', proisstrict => 'f',
6055 provolatile => 'v', prorettype => 'void', proargtypes => 'oid',
6056 prosrc => 'pg_stat_reset_subscription_stats' },
6058 { oid => '3163', descr => 'current trigger depth',
6059 proname => 'pg_trigger_depth', provolatile => 's', proparallel => 'r',
6060 prorettype => 'int4', proargtypes => '', prosrc => 'pg_trigger_depth' },
6062 { oid => '3778', descr => 'tablespace location',
6063 proname => 'pg_tablespace_location', provolatile => 's', prorettype => 'text',
6064 proargtypes => 'oid', prosrc => 'pg_tablespace_location' },
6066 { oid => '1946',
6067 descr => 'convert bytea value into some ascii-only text string',
6068 proname => 'encode', prorettype => 'text', proargtypes => 'bytea text',
6069 prosrc => 'binary_encode' },
6070 { oid => '1947',
6071 descr => 'convert ascii-encoded text string into bytea value',
6072 proname => 'decode', prorettype => 'bytea', proargtypes => 'text text',
6073 prosrc => 'binary_decode' },
6075 { oid => '1948',
6076 proname => 'byteaeq', proleakproof => 't', prorettype => 'bool',
6077 proargtypes => 'bytea bytea', prosrc => 'byteaeq' },
6078 { oid => '1949',
6079 proname => 'bytealt', proleakproof => 't', prorettype => 'bool',
6080 proargtypes => 'bytea bytea', prosrc => 'bytealt' },
6081 { oid => '1950',
6082 proname => 'byteale', proleakproof => 't', prorettype => 'bool',
6083 proargtypes => 'bytea bytea', prosrc => 'byteale' },
6084 { oid => '1951',
6085 proname => 'byteagt', proleakproof => 't', prorettype => 'bool',
6086 proargtypes => 'bytea bytea', prosrc => 'byteagt' },
6087 { oid => '1952',
6088 proname => 'byteage', proleakproof => 't', prorettype => 'bool',
6089 proargtypes => 'bytea bytea', prosrc => 'byteage' },
6090 { oid => '1953',
6091 proname => 'byteane', proleakproof => 't', prorettype => 'bool',
6092 proargtypes => 'bytea bytea', prosrc => 'byteane' },
6093 { oid => '1954', descr => 'less-equal-greater',
6094 proname => 'byteacmp', proleakproof => 't', prorettype => 'int4',
6095 proargtypes => 'bytea bytea', prosrc => 'byteacmp' },
6096 { oid => '3331', descr => 'sort support',
6097 proname => 'bytea_sortsupport', prorettype => 'void',
6098 proargtypes => 'internal', prosrc => 'bytea_sortsupport' },
6100 { oid => '3917', descr => 'planner support for timestamp length coercion',
6101 proname => 'timestamp_support', prorettype => 'internal',
6102 proargtypes => 'internal', prosrc => 'timestamp_support' },
6103 { oid => '3944', descr => 'planner support for time length coercion',
6104 proname => 'time_support', prorettype => 'internal',
6105 proargtypes => 'internal', prosrc => 'time_support' },
6107 { oid => '1961', descr => 'adjust timestamp precision',
6108 proname => 'timestamp', prosupport => 'timestamp_support',
6109 prorettype => 'timestamp', proargtypes => 'timestamp int4',
6110 prosrc => 'timestamp_scale' },
6112 { oid => '1965', descr => 'larger of two',
6113 proname => 'oidlarger', prorettype => 'oid', proargtypes => 'oid oid',
6114 prosrc => 'oidlarger' },
6115 { oid => '1966', descr => 'smaller of two',
6116 proname => 'oidsmaller', prorettype => 'oid', proargtypes => 'oid oid',
6117 prosrc => 'oidsmaller' },
6119 { oid => '1967', descr => 'adjust timestamptz precision',
6120 proname => 'timestamptz', prosupport => 'timestamp_support',
6121 prorettype => 'timestamptz', proargtypes => 'timestamptz int4',
6122 prosrc => 'timestamptz_scale' },
6123 { oid => '1968', descr => 'adjust time precision',
6124 proname => 'time', prosupport => 'time_support', prorettype => 'time',
6125 proargtypes => 'time int4', prosrc => 'time_scale' },
6126 { oid => '1969', descr => 'adjust time with time zone precision',
6127 proname => 'timetz', prosupport => 'time_support', prorettype => 'timetz',
6128 proargtypes => 'timetz int4', prosrc => 'timetz_scale' },
6130 { oid => '2003',
6131 proname => 'textanycat', prolang => 'sql', provolatile => 's',
6132 prorettype => 'text', proargtypes => 'text anynonarray',
6133 prosrc => 'select $1 operator(pg_catalog.||) $2::pg_catalog.text' },
6134 { oid => '2004',
6135 proname => 'anytextcat', prolang => 'sql', provolatile => 's',
6136 prorettype => 'text', proargtypes => 'anynonarray text',
6137 prosrc => 'select $1::pg_catalog.text operator(pg_catalog.||) $2' },
6139 { oid => '2005',
6140 proname => 'bytealike', prosupport => 'textlike_support',
6141 prorettype => 'bool', proargtypes => 'bytea bytea', prosrc => 'bytealike' },
6142 { oid => '2006',
6143 proname => 'byteanlike', prorettype => 'bool', proargtypes => 'bytea bytea',
6144 prosrc => 'byteanlike' },
6145 { oid => '2007', descr => 'matches LIKE expression',
6146 proname => 'like', prosupport => 'textlike_support', prorettype => 'bool',
6147 proargtypes => 'bytea bytea', prosrc => 'bytealike' },
6148 { oid => '2008', descr => 'does not match LIKE expression',
6149 proname => 'notlike', prorettype => 'bool', proargtypes => 'bytea bytea',
6150 prosrc => 'byteanlike' },
6151 { oid => '2009', descr => 'convert LIKE pattern to use backslash escapes',
6152 proname => 'like_escape', prorettype => 'bytea', proargtypes => 'bytea bytea',
6153 prosrc => 'like_escape_bytea' },
6154 { oid => '2010', descr => 'octet length',
6155 proname => 'length', prorettype => 'int4', proargtypes => 'bytea',
6156 prosrc => 'byteaoctetlen' },
6157 { oid => '2011',
6158 proname => 'byteacat', prorettype => 'bytea', proargtypes => 'bytea bytea',
6159 prosrc => 'byteacat' },
6160 { oid => '2012', descr => 'extract portion of string',
6161 proname => 'substring', prorettype => 'bytea',
6162 proargtypes => 'bytea int4 int4', prosrc => 'bytea_substr' },
6163 { oid => '2013', descr => 'extract portion of string',
6164 proname => 'substring', prorettype => 'bytea', proargtypes => 'bytea int4',
6165 prosrc => 'bytea_substr_no_len' },
6166 { oid => '2085', descr => 'extract portion of string',
6167 proname => 'substr', prorettype => 'bytea', proargtypes => 'bytea int4 int4',
6168 prosrc => 'bytea_substr' },
6169 { oid => '2086', descr => 'extract portion of string',
6170 proname => 'substr', prorettype => 'bytea', proargtypes => 'bytea int4',
6171 prosrc => 'bytea_substr_no_len' },
6172 { oid => '2014', descr => 'position of substring',
6173 proname => 'position', prorettype => 'int4', proargtypes => 'bytea bytea',
6174 prosrc => 'byteapos' },
6175 { oid => '2015', descr => 'trim selected bytes from both ends of string',
6176 proname => 'btrim', prorettype => 'bytea', proargtypes => 'bytea bytea',
6177 prosrc => 'byteatrim' },
6178 { oid => '6195', descr => 'trim selected bytes from left end of string',
6179 proname => 'ltrim', prorettype => 'bytea', proargtypes => 'bytea bytea',
6180 prosrc => 'bytealtrim' },
6181 { oid => '6196', descr => 'trim selected bytes from right end of string',
6182 proname => 'rtrim', prorettype => 'bytea', proargtypes => 'bytea bytea',
6183 prosrc => 'byteartrim' },
6185 { oid => '2019', descr => 'convert timestamp with time zone to time',
6186 proname => 'time', provolatile => 's', prorettype => 'time',
6187 proargtypes => 'timestamptz', prosrc => 'timestamptz_time' },
6188 { oid => '2020', descr => 'truncate timestamp to specified units',
6189 proname => 'date_trunc', prorettype => 'timestamp',
6190 proargtypes => 'text timestamp', prosrc => 'timestamp_trunc' },
6192 { oid => '6177', descr => 'bin timestamp into specified interval',
6193 proname => 'date_bin', prorettype => 'timestamp',
6194 proargtypes => 'interval timestamp timestamp', prosrc => 'timestamp_bin' },
6195 { oid => '6178',
6196 descr => 'bin timestamp with time zone into specified interval',
6197 proname => 'date_bin', prorettype => 'timestamptz',
6198 proargtypes => 'interval timestamptz timestamptz',
6199 prosrc => 'timestamptz_bin' },
6201 { oid => '2021', descr => 'extract field from timestamp',
6202 proname => 'date_part', prorettype => 'float8',
6203 proargtypes => 'text timestamp', prosrc => 'timestamp_part' },
6204 { oid => '6202', descr => 'extract field from timestamp',
6205 proname => 'extract', prorettype => 'numeric',
6206 proargtypes => 'text timestamp', prosrc => 'extract_timestamp' },
6207 { oid => '2024', descr => 'convert date to timestamp',
6208 proname => 'timestamp', prorettype => 'timestamp', proargtypes => 'date',
6209 prosrc => 'date_timestamp' },
6210 { oid => '2025', descr => 'convert date and time to timestamp',
6211 proname => 'timestamp', prorettype => 'timestamp', proargtypes => 'date time',
6212 prosrc => 'datetime_timestamp' },
6213 { oid => '2027', descr => 'convert timestamp with time zone to timestamp',
6214 proname => 'timestamp', provolatile => 's', prorettype => 'timestamp',
6215 proargtypes => 'timestamptz', prosrc => 'timestamptz_timestamp' },
6216 { oid => '2028', descr => 'convert timestamp to timestamp with time zone',
6217 proname => 'timestamptz', provolatile => 's', prorettype => 'timestamptz',
6218 proargtypes => 'timestamp', prosrc => 'timestamp_timestamptz' },
6219 { oid => '2029', descr => 'convert timestamp to date',
6220 proname => 'date', prorettype => 'date', proargtypes => 'timestamp',
6221 prosrc => 'timestamp_date' },
6222 { oid => '2031',
6223 proname => 'timestamp_mi', prorettype => 'interval',
6224 proargtypes => 'timestamp timestamp', prosrc => 'timestamp_mi' },
6225 { oid => '2032',
6226 proname => 'timestamp_pl_interval', prorettype => 'timestamp',
6227 proargtypes => 'timestamp interval', prosrc => 'timestamp_pl_interval' },
6228 { oid => '2033',
6229 proname => 'timestamp_mi_interval', prorettype => 'timestamp',
6230 proargtypes => 'timestamp interval', prosrc => 'timestamp_mi_interval' },
6231 { oid => '2035', descr => 'smaller of two',
6232 proname => 'timestamp_smaller', prorettype => 'timestamp',
6233 proargtypes => 'timestamp timestamp', prosrc => 'timestamp_smaller' },
6234 { oid => '2036', descr => 'larger of two',
6235 proname => 'timestamp_larger', prorettype => 'timestamp',
6236 proargtypes => 'timestamp timestamp', prosrc => 'timestamp_larger' },
6237 { oid => '2037', descr => 'adjust time with time zone to new zone',
6238 proname => 'timezone', provolatile => 's', prorettype => 'timetz',
6239 proargtypes => 'text timetz', prosrc => 'timetz_zone' },
6240 { oid => '2038', descr => 'adjust time with time zone to new zone',
6241 proname => 'timezone', prorettype => 'timetz',
6242 proargtypes => 'interval timetz', prosrc => 'timetz_izone' },
6243 { oid => '6336', descr => 'adjust time to local time zone',
6244 proname => 'timezone', provolatile => 's', prorettype => 'timetz',
6245 proargtypes => 'timetz', prosrc => 'timetz_at_local' },
6246 { oid => '2039', descr => 'hash',
6247 proname => 'timestamp_hash', prorettype => 'int4', proargtypes => 'timestamp',
6248 prosrc => 'timestamp_hash' },
6249 { oid => '3411', descr => 'hash',
6250 proname => 'timestamp_hash_extended', prorettype => 'int8',
6251 proargtypes => 'timestamp int8', prosrc => 'timestamp_hash_extended' },
6252 { oid => '9720', descr => 'hash',
6253 proname => 'timestamptz_hash', prorettype => 'int4',
6254 proargtypes => 'timestamptz', prosrc => 'timestamptz_hash' },
6255 { oid => '9721', descr => 'hash',
6256 proname => 'timestamptz_hash_extended', prorettype => 'int8',
6257 proargtypes => 'timestamptz int8', prosrc => 'timestamptz_hash_extended' },
6258 { oid => '2041', descr => 'intervals overlap?',
6259 proname => 'overlaps', proisstrict => 'f', prorettype => 'bool',
6260 proargtypes => 'timestamp timestamp timestamp timestamp',
6261 prosrc => 'overlaps_timestamp' },
6262 { oid => '2042', descr => 'intervals overlap?',
6263 proname => 'overlaps', prolang => 'sql', proisstrict => 'f',
6264 prorettype => 'bool', proargtypes => 'timestamp interval timestamp interval',
6265 prosrc => 'see system_functions.sql' },
6266 { oid => '2043', descr => 'intervals overlap?',
6267 proname => 'overlaps', prolang => 'sql', proisstrict => 'f',
6268 prorettype => 'bool', proargtypes => 'timestamp timestamp timestamp interval',
6269 prosrc => 'see system_functions.sql' },
6270 { oid => '2044', descr => 'intervals overlap?',
6271 proname => 'overlaps', prolang => 'sql', proisstrict => 'f',
6272 prorettype => 'bool', proargtypes => 'timestamp interval timestamp timestamp',
6273 prosrc => 'see system_functions.sql' },
6274 { oid => '2045', descr => 'less-equal-greater',
6275 proname => 'timestamp_cmp', proleakproof => 't', prorettype => 'int4',
6276 proargtypes => 'timestamp timestamp', prosrc => 'timestamp_cmp' },
6277 { oid => '3137', descr => 'sort support',
6278 proname => 'timestamp_sortsupport', prorettype => 'void',
6279 proargtypes => 'internal', prosrc => 'timestamp_sortsupport' },
6281 { oid => '4134', descr => 'window RANGE support',
6282 proname => 'in_range', prorettype => 'bool',
6283 proargtypes => 'timestamp timestamp interval bool bool',
6284 prosrc => 'in_range_timestamp_interval' },
6285 { oid => '4135', descr => 'window RANGE support',
6286 proname => 'in_range', provolatile => 's', prorettype => 'bool',
6287 proargtypes => 'timestamptz timestamptz interval bool bool',
6288 prosrc => 'in_range_timestamptz_interval' },
6289 { oid => '4136', descr => 'window RANGE support',
6290 proname => 'in_range', prorettype => 'bool',
6291 proargtypes => 'interval interval interval bool bool',
6292 prosrc => 'in_range_interval_interval' },
6293 { oid => '4137', descr => 'window RANGE support',
6294 proname => 'in_range', prorettype => 'bool',
6295 proargtypes => 'time time interval bool bool',
6296 prosrc => 'in_range_time_interval' },
6297 { oid => '4138', descr => 'window RANGE support',
6298 proname => 'in_range', prorettype => 'bool',
6299 proargtypes => 'timetz timetz interval bool bool',
6300 prosrc => 'in_range_timetz_interval' },
6302 { oid => '2046', descr => 'convert time with time zone to time',
6303 proname => 'time', prorettype => 'time', proargtypes => 'timetz',
6304 prosrc => 'timetz_time' },
6305 { oid => '2047', descr => 'convert time to time with time zone',
6306 proname => 'timetz', provolatile => 's', prorettype => 'timetz',
6307 proargtypes => 'time', prosrc => 'time_timetz' },
6308 { oid => '2048', descr => 'finite timestamp?',
6309 proname => 'isfinite', prorettype => 'bool', proargtypes => 'timestamp',
6310 prosrc => 'timestamp_finite' },
6311 { oid => '2049', descr => 'format timestamp to text',
6312 proname => 'to_char', provolatile => 's', prorettype => 'text',
6313 proargtypes => 'timestamp text', prosrc => 'timestamp_to_char' },
6314 { oid => '2052',
6315 proname => 'timestamp_eq', proleakproof => 't', prorettype => 'bool',
6316 proargtypes => 'timestamp timestamp', prosrc => 'timestamp_eq' },
6317 { oid => '2053',
6318 proname => 'timestamp_ne', proleakproof => 't', prorettype => 'bool',
6319 proargtypes => 'timestamp timestamp', prosrc => 'timestamp_ne' },
6320 { oid => '2054',
6321 proname => 'timestamp_lt', proleakproof => 't', prorettype => 'bool',
6322 proargtypes => 'timestamp timestamp', prosrc => 'timestamp_lt' },
6323 { oid => '2055',
6324 proname => 'timestamp_le', proleakproof => 't', prorettype => 'bool',
6325 proargtypes => 'timestamp timestamp', prosrc => 'timestamp_le' },
6326 { oid => '2056',
6327 proname => 'timestamp_ge', proleakproof => 't', prorettype => 'bool',
6328 proargtypes => 'timestamp timestamp', prosrc => 'timestamp_ge' },
6329 { oid => '2057',
6330 proname => 'timestamp_gt', proleakproof => 't', prorettype => 'bool',
6331 proargtypes => 'timestamp timestamp', prosrc => 'timestamp_gt' },
6332 { oid => '2058', descr => 'date difference preserving months and years',
6333 proname => 'age', prorettype => 'interval',
6334 proargtypes => 'timestamp timestamp', prosrc => 'timestamp_age' },
6335 { oid => '2059',
6336 descr => 'date difference from today preserving months and years',
6337 proname => 'age', prolang => 'sql', provolatile => 's',
6338 prorettype => 'interval', proargtypes => 'timestamp',
6339 prosrc => 'see system_functions.sql' },
6341 { oid => '2069', descr => 'adjust timestamp to new time zone',
6342 proname => 'timezone', prorettype => 'timestamptz',
6343 proargtypes => 'text timestamp', prosrc => 'timestamp_zone' },
6344 { oid => '2070', descr => 'adjust timestamp to new time zone',
6345 proname => 'timezone', prorettype => 'timestamptz',
6346 proargtypes => 'interval timestamp', prosrc => 'timestamp_izone' },
6347 { oid => '6335', descr => 'adjust timestamp to local time zone',
6348 proname => 'timezone', provolatile => 's', prorettype => 'timestamptz',
6349 proargtypes => 'timestamp', prosrc => 'timestamp_at_local' },
6350 { oid => '2071',
6351 proname => 'date_pl_interval', prorettype => 'timestamp',
6352 proargtypes => 'date interval', prosrc => 'date_pl_interval' },
6353 { oid => '2072',
6354 proname => 'date_mi_interval', prorettype => 'timestamp',
6355 proargtypes => 'date interval', prosrc => 'date_mi_interval' },
6357 { oid => '2073', descr => 'extract text matching regular expression',
6358 proname => 'substring', prorettype => 'text', proargtypes => 'text text',
6359 prosrc => 'textregexsubstr' },
6360 { oid => '2074', descr => 'extract text matching SQL regular expression',
6361 proname => 'substring', prolang => 'sql', prorettype => 'text',
6362 proargtypes => 'text text text', prosrc => 'see system_functions.sql' },
6364 { oid => '2075', descr => 'convert int8 to bitstring',
6365 proname => 'bit', prorettype => 'bit', proargtypes => 'int8 int4',
6366 prosrc => 'bitfromint8' },
6367 { oid => '2076', descr => 'convert bitstring to int8',
6368 proname => 'int8', prorettype => 'int8', proargtypes => 'bit',
6369 prosrc => 'bittoint8' },
6371 { oid => '2077', descr => 'SHOW X as a function',
6372 proname => 'current_setting', provolatile => 's', prorettype => 'text',
6373 proargtypes => 'text', prosrc => 'show_config_by_name' },
6374 { oid => '3294',
6375 descr => 'SHOW X as a function, optionally no error for missing variable',
6376 proname => 'current_setting', provolatile => 's', prorettype => 'text',
6377 proargtypes => 'text bool', prosrc => 'show_config_by_name_missing_ok' },
6378 { oid => '2078', descr => 'SET X as a function',
6379 proname => 'set_config', proisstrict => 'f', provolatile => 'v',
6380 proparallel => 'u', prorettype => 'text', proargtypes => 'text text bool',
6381 prosrc => 'set_config_by_name' },
6382 { oid => '2084', descr => 'SHOW ALL as a function',
6383 proname => 'pg_show_all_settings', prorows => '1000', proretset => 't',
6384 provolatile => 's', prorettype => 'record', proargtypes => '',
6385 proallargtypes => '{text,text,text,text,text,text,text,text,text,text,text,_text,text,text,text,int4,bool}',
6386 proargmodes => '{o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o}',
6387 proargnames => '{name,setting,unit,category,short_desc,extra_desc,context,vartype,source,min_val,max_val,enumvals,boot_val,reset_val,sourcefile,sourceline,pending_restart}',
6388 prosrc => 'show_all_settings' },
6390 { oid => '6240', descr => 'return flags for specified GUC',
6391 proname => 'pg_settings_get_flags', provolatile => 's', prorettype => '_text',
6392 proargtypes => 'text', prosrc => 'pg_settings_get_flags' },
6394 { oid => '3329', descr => 'show config file settings',
6395 proname => 'pg_show_all_file_settings', prorows => '1000', proretset => 't',
6396 provolatile => 'v', prorettype => 'record', proargtypes => '',
6397 proallargtypes => '{text,int4,int4,text,text,bool,text}',
6398 proargmodes => '{o,o,o,o,o,o,o}',
6399 proargnames => '{sourcefile,sourceline,seqno,name,setting,applied,error}',
6400 prosrc => 'show_all_file_settings' },
6401 { oid => '3401', descr => 'show pg_hba.conf rules',
6402 proname => 'pg_hba_file_rules', prorows => '1000', proretset => 't',
6403 provolatile => 'v', prorettype => 'record', proargtypes => '',
6404 proallargtypes => '{int4,text,int4,text,_text,_text,text,text,text,_text,text}',
6405 proargmodes => '{o,o,o,o,o,o,o,o,o,o,o}',
6406 proargnames => '{rule_number,file_name,line_number,type,database,user_name,address,netmask,auth_method,options,error}',
6407 prosrc => 'pg_hba_file_rules' },
6408 { oid => '6250', descr => 'show pg_ident.conf mappings',
6409 proname => 'pg_ident_file_mappings', prorows => '1000', proretset => 't',
6410 provolatile => 'v', prorettype => 'record', proargtypes => '',
6411 proallargtypes => '{int4,text,int4,text,text,text,text}',
6412 proargmodes => '{o,o,o,o,o,o,o}',
6413 proargnames => '{map_number,file_name,line_number,map_name,sys_name,pg_username,error}',
6414 prosrc => 'pg_ident_file_mappings' },
6415 { oid => '1371', descr => 'view system lock information',
6416 proname => 'pg_lock_status', prorows => '1000', proretset => 't',
6417 provolatile => 'v', prorettype => 'record', proargtypes => '',
6418 proallargtypes => '{text,oid,oid,int4,int2,text,xid,oid,oid,int2,text,int4,text,bool,bool,timestamptz}',
6419 proargmodes => '{o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o}',
6420 proargnames => '{locktype,database,relation,page,tuple,virtualxid,transactionid,classid,objid,objsubid,virtualtransaction,pid,mode,granted,fastpath,waitstart}',
6421 prosrc => 'pg_lock_status' },
6422 { oid => '2561',
6423 descr => 'get array of PIDs of sessions blocking specified backend PID from acquiring a heavyweight lock',
6424 proname => 'pg_blocking_pids', provolatile => 'v', prorettype => '_int4',
6425 proargtypes => 'int4', prosrc => 'pg_blocking_pids' },
6426 { oid => '3376',
6427 descr => 'get array of PIDs of sessions blocking specified backend PID from acquiring a safe snapshot',
6428 proname => 'pg_safe_snapshot_blocking_pids', provolatile => 'v',
6429 prorettype => '_int4', proargtypes => 'int4',
6430 prosrc => 'pg_safe_snapshot_blocking_pids' },
6431 { oid => '3378', descr => 'isolationtester support function',
6432 proname => 'pg_isolation_test_session_is_blocked', provolatile => 'v',
6433 prorettype => 'bool', proargtypes => 'int4 _int4',
6434 prosrc => 'pg_isolation_test_session_is_blocked' },
6435 { oid => '1065', descr => 'view two-phase transactions',
6436 proname => 'pg_prepared_xact', prorows => '1000', proretset => 't',
6437 provolatile => 'v', prorettype => 'record', proargtypes => '',
6438 proallargtypes => '{xid,text,timestamptz,oid,oid}',
6439 proargmodes => '{o,o,o,o,o}',
6440 proargnames => '{transaction,gid,prepared,ownerid,dbid}',
6441 prosrc => 'pg_prepared_xact' },
6442 { oid => '3819', descr => 'view members of a multixactid',
6443 proname => 'pg_get_multixact_members', prorows => '1000', proretset => 't',
6444 provolatile => 'v', prorettype => 'record', proargtypes => 'xid',
6445 proallargtypes => '{xid,xid,text}', proargmodes => '{i,o,o}',
6446 proargnames => '{multixid,xid,mode}', prosrc => 'pg_get_multixact_members' },
6448 { oid => '3581', descr => 'get commit timestamp of a transaction',
6449 proname => 'pg_xact_commit_timestamp', provolatile => 'v',
6450 prorettype => 'timestamptz', proargtypes => 'xid',
6451 prosrc => 'pg_xact_commit_timestamp' },
6453 { oid => '6168',
6454 descr => 'get commit timestamp and replication origin of a transaction',
6455 proname => 'pg_xact_commit_timestamp_origin', provolatile => 'v',
6456 prorettype => 'record', proargtypes => 'xid',
6457 proallargtypes => '{xid,timestamptz,oid}', proargmodes => '{i,o,o}',
6458 proargnames => '{xid,timestamp,roident}',
6459 prosrc => 'pg_xact_commit_timestamp_origin' },
6461 { oid => '3583',
6462 descr => 'get transaction Id, commit timestamp and replication origin of latest transaction commit',
6463 proname => 'pg_last_committed_xact', provolatile => 'v',
6464 prorettype => 'record', proargtypes => '',
6465 proallargtypes => '{xid,timestamptz,oid}', proargmodes => '{o,o,o}',
6466 proargnames => '{xid,timestamp,roident}',
6467 prosrc => 'pg_last_committed_xact' },
6469 { oid => '3537', descr => 'get identification of SQL object',
6470 proname => 'pg_describe_object', provolatile => 's', prorettype => 'text',
6471 proargtypes => 'oid oid int4', prosrc => 'pg_describe_object' },
6473 { oid => '8730', descr => 'get ACL for SQL object',
6474 proname => 'pg_get_acl', provolatile => 's', prorettype => '_aclitem',
6475 proargtypes => 'oid oid int4', proargnames => '{classid,objid,objsubid}',
6476 prosrc => 'pg_get_acl' },
6478 { oid => '3839',
6479 descr => 'get machine-parseable identification of SQL object',
6480 proname => 'pg_identify_object', provolatile => 's', prorettype => 'record',
6481 proargtypes => 'oid oid int4',
6482 proallargtypes => '{oid,oid,int4,text,text,text,text}',
6483 proargmodes => '{i,i,i,o,o,o,o}',
6484 proargnames => '{classid,objid,objsubid,type,schema,name,identity}',
6485 prosrc => 'pg_identify_object' },
6487 { oid => '3382',
6488 descr => 'get identification of SQL object for pg_get_object_address()',
6489 proname => 'pg_identify_object_as_address', provolatile => 's',
6490 prorettype => 'record', proargtypes => 'oid oid int4',
6491 proallargtypes => '{oid,oid,int4,text,_text,_text}',
6492 proargmodes => '{i,i,i,o,o,o}',
6493 proargnames => '{classid,objid,objsubid,type,object_names,object_args}',
6494 prosrc => 'pg_identify_object_as_address' },
6496 { oid => '3954',
6497 descr => 'get OID-based object address from name/args arrays',
6498 proname => 'pg_get_object_address', provolatile => 's',
6499 prorettype => 'record', proargtypes => 'text _text _text',
6500 proallargtypes => '{text,_text,_text,oid,oid,int4}',
6501 proargmodes => '{i,i,i,o,o,o}',
6502 proargnames => '{type,object_names,object_args,classid,objid,objsubid}',
6503 prosrc => 'pg_get_object_address' },
6505 { oid => '2079', descr => 'is table visible in search path?',
6506 proname => 'pg_table_is_visible', procost => '10', provolatile => 's',
6507 prorettype => 'bool', proargtypes => 'oid', prosrc => 'pg_table_is_visible' },
6508 { oid => '2080', descr => 'is type visible in search path?',
6509 proname => 'pg_type_is_visible', procost => '10', provolatile => 's',
6510 prorettype => 'bool', proargtypes => 'oid', prosrc => 'pg_type_is_visible' },
6511 { oid => '2081', descr => 'is function visible in search path?',
6512 proname => 'pg_function_is_visible', procost => '10', provolatile => 's',
6513 prorettype => 'bool', proargtypes => 'oid',
6514 prosrc => 'pg_function_is_visible' },
6515 { oid => '2082', descr => 'is operator visible in search path?',
6516 proname => 'pg_operator_is_visible', procost => '10', provolatile => 's',
6517 prorettype => 'bool', proargtypes => 'oid',
6518 prosrc => 'pg_operator_is_visible' },
6519 { oid => '2083', descr => 'is opclass visible in search path?',
6520 proname => 'pg_opclass_is_visible', procost => '10', provolatile => 's',
6521 prorettype => 'bool', proargtypes => 'oid',
6522 prosrc => 'pg_opclass_is_visible' },
6523 { oid => '3829', descr => 'is opfamily visible in search path?',
6524 proname => 'pg_opfamily_is_visible', procost => '10', provolatile => 's',
6525 prorettype => 'bool', proargtypes => 'oid',
6526 prosrc => 'pg_opfamily_is_visible' },
6527 { oid => '2093', descr => 'is conversion visible in search path?',
6528 proname => 'pg_conversion_is_visible', procost => '10', provolatile => 's',
6529 prorettype => 'bool', proargtypes => 'oid',
6530 prosrc => 'pg_conversion_is_visible' },
6531 { oid => '3403', descr => 'is statistics object visible in search path?',
6532 proname => 'pg_statistics_obj_is_visible', procost => '10',
6533 provolatile => 's', prorettype => 'bool', proargtypes => 'oid',
6534 prosrc => 'pg_statistics_obj_is_visible' },
6535 { oid => '3756', descr => 'is text search parser visible in search path?',
6536 proname => 'pg_ts_parser_is_visible', procost => '10', provolatile => 's',
6537 prorettype => 'bool', proargtypes => 'oid',
6538 prosrc => 'pg_ts_parser_is_visible' },
6539 { oid => '3757', descr => 'is text search dictionary visible in search path?',
6540 proname => 'pg_ts_dict_is_visible', procost => '10', provolatile => 's',
6541 prorettype => 'bool', proargtypes => 'oid',
6542 prosrc => 'pg_ts_dict_is_visible' },
6543 { oid => '3768', descr => 'is text search template visible in search path?',
6544 proname => 'pg_ts_template_is_visible', procost => '10', provolatile => 's',
6545 prorettype => 'bool', proargtypes => 'oid',
6546 prosrc => 'pg_ts_template_is_visible' },
6547 { oid => '3758',
6548 descr => 'is text search configuration visible in search path?',
6549 proname => 'pg_ts_config_is_visible', procost => '10', provolatile => 's',
6550 prorettype => 'bool', proargtypes => 'oid',
6551 prosrc => 'pg_ts_config_is_visible' },
6552 { oid => '3815', descr => 'is collation visible in search path?',
6553 proname => 'pg_collation_is_visible', procost => '10', provolatile => 's',
6554 prorettype => 'bool', proargtypes => 'oid',
6555 prosrc => 'pg_collation_is_visible' },
6557 { oid => '2854', descr => 'get OID of current session\'s temp schema, if any',
6558 proname => 'pg_my_temp_schema', provolatile => 's', proparallel => 'r',
6559 prorettype => 'oid', proargtypes => '', prosrc => 'pg_my_temp_schema' },
6560 { oid => '2855', descr => 'is schema another session\'s temp schema?',
6561 proname => 'pg_is_other_temp_schema', provolatile => 's',
6562 prorettype => 'bool', proargtypes => 'oid',
6563 prosrc => 'pg_is_other_temp_schema' },
6565 { oid => '2171', descr => 'cancel a server process\' current query',
6566 proname => 'pg_cancel_backend', provolatile => 'v', prorettype => 'bool',
6567 proargtypes => 'int4', prosrc => 'pg_cancel_backend' },
6568 { oid => '2096', descr => 'terminate a server process',
6569 proname => 'pg_terminate_backend', provolatile => 'v', prorettype => 'bool',
6570 proargtypes => 'int4 int8', proargnames => '{pid,timeout}',
6571 prosrc => 'pg_terminate_backend' },
6572 { oid => '2172', descr => 'prepare for taking an online backup',
6573 proname => 'pg_backup_start', provolatile => 'v', proparallel => 'r',
6574 prorettype => 'pg_lsn', proargtypes => 'text bool',
6575 prosrc => 'pg_backup_start' },
6576 { oid => '2739', descr => 'finish taking an online backup',
6577 proname => 'pg_backup_stop', provolatile => 'v', proparallel => 'r',
6578 prorettype => 'record', proargtypes => 'bool',
6579 proallargtypes => '{bool,pg_lsn,text,text}', proargmodes => '{i,o,o,o}',
6580 proargnames => '{wait_for_archive,lsn,labelfile,spcmapfile}',
6581 prosrc => 'pg_backup_stop' },
6582 { oid => '3436', descr => 'promote standby server',
6583 proname => 'pg_promote', provolatile => 'v', prorettype => 'bool',
6584 proargtypes => 'bool int4', proargnames => '{wait,wait_seconds}',
6585 prosrc => 'pg_promote' },
6586 { oid => '2848', descr => 'switch to new wal file',
6587 proname => 'pg_switch_wal', provolatile => 'v', prorettype => 'pg_lsn',
6588 proargtypes => '', prosrc => 'pg_switch_wal' },
6589 { oid => '6305', descr => 'log details of the current snapshot to WAL',
6590 proname => 'pg_log_standby_snapshot', provolatile => 'v',
6591 prorettype => 'pg_lsn', proargtypes => '',
6592 prosrc => 'pg_log_standby_snapshot' },
6593 { oid => '3098', descr => 'create a named restore point',
6594 proname => 'pg_create_restore_point', provolatile => 'v',
6595 prorettype => 'pg_lsn', proargtypes => 'text',
6596 prosrc => 'pg_create_restore_point' },
6597 { oid => '2849', descr => 'current wal write location',
6598 proname => 'pg_current_wal_lsn', provolatile => 'v', prorettype => 'pg_lsn',
6599 proargtypes => '', prosrc => 'pg_current_wal_lsn' },
6600 { oid => '2852', descr => 'current wal insert location',
6601 proname => 'pg_current_wal_insert_lsn', provolatile => 'v',
6602 prorettype => 'pg_lsn', proargtypes => '',
6603 prosrc => 'pg_current_wal_insert_lsn' },
6604 { oid => '3330', descr => 'current wal flush location',
6605 proname => 'pg_current_wal_flush_lsn', provolatile => 'v',
6606 prorettype => 'pg_lsn', proargtypes => '',
6607 prosrc => 'pg_current_wal_flush_lsn' },
6608 { oid => '2850',
6609 descr => 'wal filename and byte offset, given a wal location',
6610 proname => 'pg_walfile_name_offset', prorettype => 'record',
6611 proargtypes => 'pg_lsn', proallargtypes => '{pg_lsn,text,int4}',
6612 proargmodes => '{i,o,o}', proargnames => '{lsn,file_name,file_offset}',
6613 prosrc => 'pg_walfile_name_offset' },
6614 { oid => '2851', descr => 'wal filename, given a wal location',
6615 proname => 'pg_walfile_name', prorettype => 'text', proargtypes => 'pg_lsn',
6616 prosrc => 'pg_walfile_name' },
6617 { oid => '6213',
6618 descr => 'sequence number and timeline ID given a wal filename',
6619 proname => 'pg_split_walfile_name', provolatile => 's',
6620 prorettype => 'record', proargtypes => 'text',
6621 proallargtypes => '{text,numeric,int8}', proargmodes => '{i,o,o}',
6622 proargnames => '{file_name,segment_number,timeline_id}',
6623 prosrc => 'pg_split_walfile_name' },
6625 { oid => '3165', descr => 'difference in bytes, given two wal locations',
6626 proname => 'pg_wal_lsn_diff', prorettype => 'numeric',
6627 proargtypes => 'pg_lsn pg_lsn', prosrc => 'pg_wal_lsn_diff' },
6629 { oid => '3809', descr => 'export a snapshot',
6630 proname => 'pg_export_snapshot', provolatile => 'v', proparallel => 'u',
6631 prorettype => 'text', proargtypes => '', prosrc => 'pg_export_snapshot' },
6633 { oid => '3810', descr => 'true if server is in recovery',
6634 proname => 'pg_is_in_recovery', provolatile => 'v', prorettype => 'bool',
6635 proargtypes => '', prosrc => 'pg_is_in_recovery' },
6637 { oid => '3820', descr => 'current wal flush location',
6638 proname => 'pg_last_wal_receive_lsn', provolatile => 'v',
6639 prorettype => 'pg_lsn', proargtypes => '',
6640 prosrc => 'pg_last_wal_receive_lsn' },
6641 { oid => '3821', descr => 'last wal replay location',
6642 proname => 'pg_last_wal_replay_lsn', provolatile => 'v',
6643 prorettype => 'pg_lsn', proargtypes => '',
6644 prosrc => 'pg_last_wal_replay_lsn' },
6645 { oid => '3830', descr => 'timestamp of last replay xact',
6646 proname => 'pg_last_xact_replay_timestamp', provolatile => 'v',
6647 prorettype => 'timestamptz', proargtypes => '',
6648 prosrc => 'pg_last_xact_replay_timestamp' },
6650 { oid => '3071', descr => 'pause wal replay',
6651 proname => 'pg_wal_replay_pause', provolatile => 'v', prorettype => 'void',
6652 proargtypes => '', prosrc => 'pg_wal_replay_pause' },
6653 { oid => '3072', descr => 'resume wal replay, if it was paused',
6654 proname => 'pg_wal_replay_resume', provolatile => 'v', prorettype => 'void',
6655 proargtypes => '', prosrc => 'pg_wal_replay_resume' },
6656 { oid => '3073', descr => 'true if wal replay is paused',
6657 proname => 'pg_is_wal_replay_paused', provolatile => 'v',
6658 prorettype => 'bool', proargtypes => '',
6659 prosrc => 'pg_is_wal_replay_paused' },
6660 { oid => '1137', descr => 'get wal replay pause state',
6661 proname => 'pg_get_wal_replay_pause_state', provolatile => 'v',
6662 prorettype => 'text', proargtypes => '',
6663 prosrc => 'pg_get_wal_replay_pause_state' },
6665 { oid => '8593',
6666 descr => 'wait for the target LSN to be replayed on standby with an optional timeout',
6667 proname => 'pg_wal_replay_wait', prokind => 'p', prorettype => 'void',
6668 proargtypes => 'pg_lsn int8', proargnames => '{target_lsn,timeout}',
6669 prosrc => 'pg_wal_replay_wait' },
6671 { oid => '6224', descr => 'get resource managers loaded in system',
6672 proname => 'pg_get_wal_resource_managers', prorows => '50', proretset => 't',
6673 provolatile => 'v', prorettype => 'record', proargtypes => '',
6674 proallargtypes => '{int4,text,bool}', proargmodes => '{o,o,o}',
6675 proargnames => '{rm_id, rm_name, rm_builtin}',
6676 prosrc => 'pg_get_wal_resource_managers' },
6678 { oid => '2621', descr => 'reload configuration files',
6679 proname => 'pg_reload_conf', provolatile => 'v', prorettype => 'bool',
6680 proargtypes => '', prosrc => 'pg_reload_conf' },
6681 { oid => '2622', descr => 'rotate log file',
6682 proname => 'pg_rotate_logfile', provolatile => 'v', prorettype => 'bool',
6683 proargtypes => '', prosrc => 'pg_rotate_logfile' },
6684 { oid => '3800', descr => 'current logging collector file location',
6685 proname => 'pg_current_logfile', proisstrict => 'f', provolatile => 'v',
6686 prorettype => 'text', proargtypes => '', prosrc => 'pg_current_logfile' },
6687 { oid => '3801', descr => 'current logging collector file location',
6688 proname => 'pg_current_logfile', proisstrict => 'f', provolatile => 'v',
6689 prorettype => 'text', proargtypes => 'text',
6690 prosrc => 'pg_current_logfile_1arg' },
6692 { oid => '2623', descr => 'get information about file',
6693 proname => 'pg_stat_file', provolatile => 'v', prorettype => 'record',
6694 proargtypes => 'text',
6695 proallargtypes => '{text,int8,timestamptz,timestamptz,timestamptz,timestamptz,bool}',
6696 proargmodes => '{i,o,o,o,o,o,o}',
6697 proargnames => '{filename,size,access,modification,change,creation,isdir}',
6698 prosrc => 'pg_stat_file_1arg' },
6699 { oid => '3307', descr => 'get information about file',
6700 proname => 'pg_stat_file', provolatile => 'v', prorettype => 'record',
6701 proargtypes => 'text bool',
6702 proallargtypes => '{text,bool,int8,timestamptz,timestamptz,timestamptz,timestamptz,bool}',
6703 proargmodes => '{i,i,o,o,o,o,o,o}',
6704 proargnames => '{filename,missing_ok,size,access,modification,change,creation,isdir}',
6705 prosrc => 'pg_stat_file' },
6706 { oid => '2624', descr => 'read text from a file',
6707 proname => 'pg_read_file', provolatile => 'v', prorettype => 'text',
6708 proargtypes => 'text int8 int8', prosrc => 'pg_read_file_off_len' },
6709 { oid => '3293', descr => 'read text from a file',
6710 proname => 'pg_read_file', provolatile => 'v', prorettype => 'text',
6711 proargtypes => 'text int8 int8 bool',
6712 prosrc => 'pg_read_file_off_len_missing' },
6713 { oid => '3826', descr => 'read text from a file',
6714 proname => 'pg_read_file', provolatile => 'v', prorettype => 'text',
6715 proargtypes => 'text', prosrc => 'pg_read_file_all' },
6716 { oid => '6208', descr => 'read text from a file',
6717 proname => 'pg_read_file', provolatile => 'v', prorettype => 'text',
6718 proargtypes => 'text bool', prosrc => 'pg_read_file_all_missing' },
6719 { oid => '3827', descr => 'read bytea from a file',
6720 proname => 'pg_read_binary_file', provolatile => 'v', prorettype => 'bytea',
6721 proargtypes => 'text int8 int8', prosrc => 'pg_read_binary_file_off_len' },
6722 { oid => '3295', descr => 'read bytea from a file',
6723 proname => 'pg_read_binary_file', provolatile => 'v', prorettype => 'bytea',
6724 proargtypes => 'text int8 int8 bool',
6725 prosrc => 'pg_read_binary_file_off_len_missing' },
6726 { oid => '3828', descr => 'read bytea from a file',
6727 proname => 'pg_read_binary_file', provolatile => 'v', prorettype => 'bytea',
6728 proargtypes => 'text', prosrc => 'pg_read_binary_file_all' },
6729 { oid => '6209', descr => 'read bytea from a file',
6730 proname => 'pg_read_binary_file', provolatile => 'v', prorettype => 'bytea',
6731 proargtypes => 'text bool', prosrc => 'pg_read_binary_file_all_missing' },
6732 { oid => '2625', descr => 'list all files in a directory',
6733 proname => 'pg_ls_dir', prorows => '1000', proretset => 't',
6734 provolatile => 'v', prorettype => 'text', proargtypes => 'text',
6735 prosrc => 'pg_ls_dir_1arg' },
6736 { oid => '3297', descr => 'list all files in a directory',
6737 proname => 'pg_ls_dir', prorows => '1000', proretset => 't',
6738 provolatile => 'v', prorettype => 'text', proargtypes => 'text bool bool',
6739 prosrc => 'pg_ls_dir' },
6740 { oid => '2626', descr => 'sleep for the specified time in seconds',
6741 proname => 'pg_sleep', provolatile => 'v', prorettype => 'void',
6742 proargtypes => 'float8', prosrc => 'pg_sleep' },
6743 { oid => '3935', descr => 'sleep for the specified interval',
6744 proname => 'pg_sleep_for', prolang => 'sql', provolatile => 'v',
6745 prorettype => 'void', proargtypes => 'interval',
6746 prosrc => 'see system_functions.sql' },
6747 { oid => '3936', descr => 'sleep until the specified time',
6748 proname => 'pg_sleep_until', prolang => 'sql', provolatile => 'v',
6749 prorettype => 'void', proargtypes => 'timestamptz',
6750 prosrc => 'see system_functions.sql' },
6751 { oid => '315', descr => 'Is JIT compilation available in this session?',
6752 proname => 'pg_jit_available', provolatile => 'v', prorettype => 'bool',
6753 proargtypes => '', prosrc => 'pg_jit_available' },
6755 { oid => '2971', descr => 'convert boolean to text',
6756 proname => 'text', prorettype => 'text', proargtypes => 'bool',
6757 prosrc => 'booltext' },
6759 # Aggregates (moved here from pg_aggregate for 7.3)
6761 { oid => '2100',
6762 descr => 'the average (arithmetic mean) as numeric of all bigint values',
6763 proname => 'avg', prokind => 'a', proisstrict => 'f', prorettype => 'numeric',
6764 proargtypes => 'int8', prosrc => 'aggregate_dummy' },
6765 { oid => '2101',
6766 descr => 'the average (arithmetic mean) as numeric of all integer values',
6767 proname => 'avg', prokind => 'a', proisstrict => 'f', prorettype => 'numeric',
6768 proargtypes => 'int4', prosrc => 'aggregate_dummy' },
6769 { oid => '2102',
6770 descr => 'the average (arithmetic mean) as numeric of all smallint values',
6771 proname => 'avg', prokind => 'a', proisstrict => 'f', prorettype => 'numeric',
6772 proargtypes => 'int2', prosrc => 'aggregate_dummy' },
6773 { oid => '2103',
6774 descr => 'the average (arithmetic mean) as numeric of all numeric values',
6775 proname => 'avg', prokind => 'a', proisstrict => 'f', prorettype => 'numeric',
6776 proargtypes => 'numeric', prosrc => 'aggregate_dummy' },
6777 { oid => '2104',
6778 descr => 'the average (arithmetic mean) as float8 of all float4 values',
6779 proname => 'avg', prokind => 'a', proisstrict => 'f', prorettype => 'float8',
6780 proargtypes => 'float4', prosrc => 'aggregate_dummy' },
6781 { oid => '2105',
6782 descr => 'the average (arithmetic mean) as float8 of all float8 values',
6783 proname => 'avg', prokind => 'a', proisstrict => 'f', prorettype => 'float8',
6784 proargtypes => 'float8', prosrc => 'aggregate_dummy' },
6785 { oid => '2106',
6786 descr => 'the average (arithmetic mean) as interval of all interval values',
6787 proname => 'avg', prokind => 'a', proisstrict => 'f',
6788 prorettype => 'interval', proargtypes => 'interval',
6789 prosrc => 'aggregate_dummy' },
6791 { oid => '2107', descr => 'sum as numeric across all bigint input values',
6792 proname => 'sum', prokind => 'a', proisstrict => 'f', prorettype => 'numeric',
6793 proargtypes => 'int8', prosrc => 'aggregate_dummy' },
6794 { oid => '2108', descr => 'sum as bigint across all integer input values',
6795 proname => 'sum', prokind => 'a', proisstrict => 'f', prorettype => 'int8',
6796 proargtypes => 'int4', prosrc => 'aggregate_dummy' },
6797 { oid => '2109', descr => 'sum as bigint across all smallint input values',
6798 proname => 'sum', prokind => 'a', proisstrict => 'f', prorettype => 'int8',
6799 proargtypes => 'int2', prosrc => 'aggregate_dummy' },
6800 { oid => '2110', descr => 'sum as float4 across all float4 input values',
6801 proname => 'sum', prokind => 'a', proisstrict => 'f', prorettype => 'float4',
6802 proargtypes => 'float4', prosrc => 'aggregate_dummy' },
6803 { oid => '2111', descr => 'sum as float8 across all float8 input values',
6804 proname => 'sum', prokind => 'a', proisstrict => 'f', prorettype => 'float8',
6805 proargtypes => 'float8', prosrc => 'aggregate_dummy' },
6806 { oid => '2112', descr => 'sum as money across all money input values',
6807 proname => 'sum', prokind => 'a', proisstrict => 'f', prorettype => 'money',
6808 proargtypes => 'money', prosrc => 'aggregate_dummy' },
6809 { oid => '2113', descr => 'sum as interval across all interval input values',
6810 proname => 'sum', prokind => 'a', proisstrict => 'f',
6811 prorettype => 'interval', proargtypes => 'interval',
6812 prosrc => 'aggregate_dummy' },
6813 { oid => '2114', descr => 'sum as numeric across all numeric input values',
6814 proname => 'sum', prokind => 'a', proisstrict => 'f', prorettype => 'numeric',
6815 proargtypes => 'numeric', prosrc => 'aggregate_dummy' },
6817 { oid => '2115', descr => 'maximum value of all bigint input values',
6818 proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'int8',
6819 proargtypes => 'int8', prosrc => 'aggregate_dummy' },
6820 { oid => '2116', descr => 'maximum value of all integer input values',
6821 proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'int4',
6822 proargtypes => 'int4', prosrc => 'aggregate_dummy' },
6823 { oid => '2117', descr => 'maximum value of all smallint input values',
6824 proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'int2',
6825 proargtypes => 'int2', prosrc => 'aggregate_dummy' },
6826 { oid => '2118', descr => 'maximum value of all oid input values',
6827 proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'oid',
6828 proargtypes => 'oid', prosrc => 'aggregate_dummy' },
6829 { oid => '2119', descr => 'maximum value of all float4 input values',
6830 proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'float4',
6831 proargtypes => 'float4', prosrc => 'aggregate_dummy' },
6832 { oid => '2120', descr => 'maximum value of all float8 input values',
6833 proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'float8',
6834 proargtypes => 'float8', prosrc => 'aggregate_dummy' },
6835 { oid => '2122', descr => 'maximum value of all date input values',
6836 proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'date',
6837 proargtypes => 'date', prosrc => 'aggregate_dummy' },
6838 { oid => '2123', descr => 'maximum value of all time input values',
6839 proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'time',
6840 proargtypes => 'time', prosrc => 'aggregate_dummy' },
6841 { oid => '2124',
6842 descr => 'maximum value of all time with time zone input values',
6843 proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'timetz',
6844 proargtypes => 'timetz', prosrc => 'aggregate_dummy' },
6845 { oid => '2125', descr => 'maximum value of all money input values',
6846 proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'money',
6847 proargtypes => 'money', prosrc => 'aggregate_dummy' },
6848 { oid => '2126', descr => 'maximum value of all timestamp input values',
6849 proname => 'max', prokind => 'a', proisstrict => 'f',
6850 prorettype => 'timestamp', proargtypes => 'timestamp',
6851 prosrc => 'aggregate_dummy' },
6852 { oid => '2127',
6853 descr => 'maximum value of all timestamp with time zone input values',
6854 proname => 'max', prokind => 'a', proisstrict => 'f',
6855 prorettype => 'timestamptz', proargtypes => 'timestamptz',
6856 prosrc => 'aggregate_dummy' },
6857 { oid => '2128', descr => 'maximum value of all interval input values',
6858 proname => 'max', prokind => 'a', proisstrict => 'f',
6859 prorettype => 'interval', proargtypes => 'interval',
6860 prosrc => 'aggregate_dummy' },
6861 { oid => '2129', descr => 'maximum value of all text input values',
6862 proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'text',
6863 proargtypes => 'text', prosrc => 'aggregate_dummy' },
6864 { oid => '2130', descr => 'maximum value of all numeric input values',
6865 proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'numeric',
6866 proargtypes => 'numeric', prosrc => 'aggregate_dummy' },
6867 { oid => '2050', descr => 'maximum value of all anyarray input values',
6868 proname => 'max', prokind => 'a', proisstrict => 'f',
6869 prorettype => 'anyarray', proargtypes => 'anyarray',
6870 prosrc => 'aggregate_dummy' },
6871 { oid => '8595', descr => 'maximum value of all record input values',
6872 proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'record',
6873 proargtypes => 'record', prosrc => 'aggregate_dummy' },
6874 { oid => '2244', descr => 'maximum value of all bpchar input values',
6875 proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'bpchar',
6876 proargtypes => 'bpchar', prosrc => 'aggregate_dummy' },
6877 { oid => '2797', descr => 'maximum value of all tid input values',
6878 proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'tid',
6879 proargtypes => 'tid', prosrc => 'aggregate_dummy' },
6880 { oid => '3564', descr => 'maximum value of all inet input values',
6881 proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'inet',
6882 proargtypes => 'inet', prosrc => 'aggregate_dummy' },
6883 { oid => '4189', descr => 'maximum value of all pg_lsn input values',
6884 proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'pg_lsn',
6885 proargtypes => 'pg_lsn', prosrc => 'aggregate_dummy' },
6886 { oid => '5099', descr => 'maximum value of all xid8 input values',
6887 proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'xid8',
6888 proargtypes => 'xid8', prosrc => 'aggregate_dummy' },
6889 { oid => '8922', descr => 'maximum value of all bytea input values',
6890 proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'bytea',
6891 proargtypes => 'bytea', prosrc => 'aggregate_dummy' },
6893 { oid => '2131', descr => 'minimum value of all bigint input values',
6894 proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'int8',
6895 proargtypes => 'int8', prosrc => 'aggregate_dummy' },
6896 { oid => '2132', descr => 'minimum value of all integer input values',
6897 proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'int4',
6898 proargtypes => 'int4', prosrc => 'aggregate_dummy' },
6899 { oid => '2133', descr => 'minimum value of all smallint input values',
6900 proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'int2',
6901 proargtypes => 'int2', prosrc => 'aggregate_dummy' },
6902 { oid => '2134', descr => 'minimum value of all oid input values',
6903 proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'oid',
6904 proargtypes => 'oid', prosrc => 'aggregate_dummy' },
6905 { oid => '2135', descr => 'minimum value of all float4 input values',
6906 proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'float4',
6907 proargtypes => 'float4', prosrc => 'aggregate_dummy' },
6908 { oid => '2136', descr => 'minimum value of all float8 input values',
6909 proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'float8',
6910 proargtypes => 'float8', prosrc => 'aggregate_dummy' },
6911 { oid => '2138', descr => 'minimum value of all date input values',
6912 proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'date',
6913 proargtypes => 'date', prosrc => 'aggregate_dummy' },
6914 { oid => '2139', descr => 'minimum value of all time input values',
6915 proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'time',
6916 proargtypes => 'time', prosrc => 'aggregate_dummy' },
6917 { oid => '2140',
6918 descr => 'minimum value of all time with time zone input values',
6919 proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'timetz',
6920 proargtypes => 'timetz', prosrc => 'aggregate_dummy' },
6921 { oid => '2141', descr => 'minimum value of all money input values',
6922 proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'money',
6923 proargtypes => 'money', prosrc => 'aggregate_dummy' },
6924 { oid => '2142', descr => 'minimum value of all timestamp input values',
6925 proname => 'min', prokind => 'a', proisstrict => 'f',
6926 prorettype => 'timestamp', proargtypes => 'timestamp',
6927 prosrc => 'aggregate_dummy' },
6928 { oid => '2143',
6929 descr => 'minimum value of all timestamp with time zone input values',
6930 proname => 'min', prokind => 'a', proisstrict => 'f',
6931 prorettype => 'timestamptz', proargtypes => 'timestamptz',
6932 prosrc => 'aggregate_dummy' },
6933 { oid => '2144', descr => 'minimum value of all interval input values',
6934 proname => 'min', prokind => 'a', proisstrict => 'f',
6935 prorettype => 'interval', proargtypes => 'interval',
6936 prosrc => 'aggregate_dummy' },
6937 { oid => '2145', descr => 'minimum value of all text values',
6938 proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'text',
6939 proargtypes => 'text', prosrc => 'aggregate_dummy' },
6940 { oid => '2146', descr => 'minimum value of all numeric input values',
6941 proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'numeric',
6942 proargtypes => 'numeric', prosrc => 'aggregate_dummy' },
6943 { oid => '2051', descr => 'minimum value of all anyarray input values',
6944 proname => 'min', prokind => 'a', proisstrict => 'f',
6945 prorettype => 'anyarray', proargtypes => 'anyarray',
6946 prosrc => 'aggregate_dummy' },
6947 { oid => '8596', descr => 'minimum value of all record input values',
6948 proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'record',
6949 proargtypes => 'record', prosrc => 'aggregate_dummy' },
6950 { oid => '2245', descr => 'minimum value of all bpchar input values',
6951 proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'bpchar',
6952 proargtypes => 'bpchar', prosrc => 'aggregate_dummy' },
6953 { oid => '2798', descr => 'minimum value of all tid input values',
6954 proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'tid',
6955 proargtypes => 'tid', prosrc => 'aggregate_dummy' },
6956 { oid => '3565', descr => 'minimum value of all inet input values',
6957 proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'inet',
6958 proargtypes => 'inet', prosrc => 'aggregate_dummy' },
6959 { oid => '4190', descr => 'minimum value of all pg_lsn input values',
6960 proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'pg_lsn',
6961 proargtypes => 'pg_lsn', prosrc => 'aggregate_dummy' },
6962 { oid => '5100', descr => 'minimum value of all xid8 input values',
6963 proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'xid8',
6964 proargtypes => 'xid8', prosrc => 'aggregate_dummy' },
6965 { oid => '8923', descr => 'minimum value of all bytea input values',
6966 proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'bytea',
6967 proargtypes => 'bytea', prosrc => 'aggregate_dummy' },
6969 # count has two forms: count(any) and count(*)
6970 { oid => '2147',
6971 descr => 'number of input rows for which the input expression is not null',
6972 proname => 'count', prosupport => 'int8inc_support', prokind => 'a',
6973 proisstrict => 'f', prorettype => 'int8', proargtypes => 'any',
6974 prosrc => 'aggregate_dummy' },
6975 { oid => '2803', descr => 'number of input rows',
6976 proname => 'count', prosupport => 'int8inc_support', prokind => 'a',
6977 proisstrict => 'f', prorettype => 'int8', proargtypes => '',
6978 prosrc => 'aggregate_dummy' },
6979 { oid => '6236', descr => 'planner support for count run condition',
6980 proname => 'int8inc_support', prorettype => 'internal',
6981 proargtypes => 'internal', prosrc => 'int8inc_support' },
6983 { oid => '2718',
6984 descr => 'population variance of bigint input values (square of the population standard deviation)',
6985 proname => 'var_pop', prokind => 'a', proisstrict => 'f',
6986 prorettype => 'numeric', proargtypes => 'int8', prosrc => 'aggregate_dummy' },
6987 { oid => '2719',
6988 descr => 'population variance of integer input values (square of the population standard deviation)',
6989 proname => 'var_pop', prokind => 'a', proisstrict => 'f',
6990 prorettype => 'numeric', proargtypes => 'int4', prosrc => 'aggregate_dummy' },
6991 { oid => '2720',
6992 descr => 'population variance of smallint input values (square of the population standard deviation)',
6993 proname => 'var_pop', prokind => 'a', proisstrict => 'f',
6994 prorettype => 'numeric', proargtypes => 'int2', prosrc => 'aggregate_dummy' },
6995 { oid => '2721',
6996 descr => 'population variance of float4 input values (square of the population standard deviation)',
6997 proname => 'var_pop', prokind => 'a', proisstrict => 'f',
6998 prorettype => 'float8', proargtypes => 'float4',
6999 prosrc => 'aggregate_dummy' },
7000 { oid => '2722',
7001 descr => 'population variance of float8 input values (square of the population standard deviation)',
7002 proname => 'var_pop', prokind => 'a', proisstrict => 'f',
7003 prorettype => 'float8', proargtypes => 'float8',
7004 prosrc => 'aggregate_dummy' },
7005 { oid => '2723',
7006 descr => 'population variance of numeric input values (square of the population standard deviation)',
7007 proname => 'var_pop', prokind => 'a', proisstrict => 'f',
7008 prorettype => 'numeric', proargtypes => 'numeric',
7009 prosrc => 'aggregate_dummy' },
7011 { oid => '2641',
7012 descr => 'sample variance of bigint input values (square of the sample standard deviation)',
7013 proname => 'var_samp', prokind => 'a', proisstrict => 'f',
7014 prorettype => 'numeric', proargtypes => 'int8', prosrc => 'aggregate_dummy' },
7015 { oid => '2642',
7016 descr => 'sample variance of integer input values (square of the sample standard deviation)',
7017 proname => 'var_samp', prokind => 'a', proisstrict => 'f',
7018 prorettype => 'numeric', proargtypes => 'int4', prosrc => 'aggregate_dummy' },
7019 { oid => '2643',
7020 descr => 'sample variance of smallint input values (square of the sample standard deviation)',
7021 proname => 'var_samp', prokind => 'a', proisstrict => 'f',
7022 prorettype => 'numeric', proargtypes => 'int2', prosrc => 'aggregate_dummy' },
7023 { oid => '2644',
7024 descr => 'sample variance of float4 input values (square of the sample standard deviation)',
7025 proname => 'var_samp', prokind => 'a', proisstrict => 'f',
7026 prorettype => 'float8', proargtypes => 'float4',
7027 prosrc => 'aggregate_dummy' },
7029 { oid => '2645',
7030 descr => 'sample variance of float8 input values (square of the sample standard deviation)',
7031 proname => 'var_samp', prokind => 'a', proisstrict => 'f',
7032 prorettype => 'float8', proargtypes => 'float8',
7033 prosrc => 'aggregate_dummy' },
7034 { oid => '2646',
7035 descr => 'sample variance of numeric input values (square of the sample standard deviation)',
7036 proname => 'var_samp', prokind => 'a', proisstrict => 'f',
7037 prorettype => 'numeric', proargtypes => 'numeric',
7038 prosrc => 'aggregate_dummy' },
7040 { oid => '2148', descr => 'historical alias for var_samp',
7041 proname => 'variance', prokind => 'a', proisstrict => 'f',
7042 prorettype => 'numeric', proargtypes => 'int8', prosrc => 'aggregate_dummy' },
7043 { oid => '2149', descr => 'historical alias for var_samp',
7044 proname => 'variance', prokind => 'a', proisstrict => 'f',
7045 prorettype => 'numeric', proargtypes => 'int4', prosrc => 'aggregate_dummy' },
7046 { oid => '2150', descr => 'historical alias for var_samp',
7047 proname => 'variance', prokind => 'a', proisstrict => 'f',
7048 prorettype => 'numeric', proargtypes => 'int2', prosrc => 'aggregate_dummy' },
7049 { oid => '2151', descr => 'historical alias for var_samp',
7050 proname => 'variance', prokind => 'a', proisstrict => 'f',
7051 prorettype => 'float8', proargtypes => 'float4',
7052 prosrc => 'aggregate_dummy' },
7053 { oid => '2152', descr => 'historical alias for var_samp',
7054 proname => 'variance', prokind => 'a', proisstrict => 'f',
7055 prorettype => 'float8', proargtypes => 'float8',
7056 prosrc => 'aggregate_dummy' },
7057 { oid => '2153', descr => 'historical alias for var_samp',
7058 proname => 'variance', prokind => 'a', proisstrict => 'f',
7059 prorettype => 'numeric', proargtypes => 'numeric',
7060 prosrc => 'aggregate_dummy' },
7062 { oid => '2724',
7063 descr => 'population standard deviation of bigint input values',
7064 proname => 'stddev_pop', prokind => 'a', proisstrict => 'f',
7065 prorettype => 'numeric', proargtypes => 'int8', prosrc => 'aggregate_dummy' },
7066 { oid => '2725',
7067 descr => 'population standard deviation of integer input values',
7068 proname => 'stddev_pop', prokind => 'a', proisstrict => 'f',
7069 prorettype => 'numeric', proargtypes => 'int4', prosrc => 'aggregate_dummy' },
7070 { oid => '2726',
7071 descr => 'population standard deviation of smallint input values',
7072 proname => 'stddev_pop', prokind => 'a', proisstrict => 'f',
7073 prorettype => 'numeric', proargtypes => 'int2', prosrc => 'aggregate_dummy' },
7074 { oid => '2727',
7075 descr => 'population standard deviation of float4 input values',
7076 proname => 'stddev_pop', prokind => 'a', proisstrict => 'f',
7077 prorettype => 'float8', proargtypes => 'float4',
7078 prosrc => 'aggregate_dummy' },
7079 { oid => '2728',
7080 descr => 'population standard deviation of float8 input values',
7081 proname => 'stddev_pop', prokind => 'a', proisstrict => 'f',
7082 prorettype => 'float8', proargtypes => 'float8',
7083 prosrc => 'aggregate_dummy' },
7084 { oid => '2729',
7085 descr => 'population standard deviation of numeric input values',
7086 proname => 'stddev_pop', prokind => 'a', proisstrict => 'f',
7087 prorettype => 'numeric', proargtypes => 'numeric',
7088 prosrc => 'aggregate_dummy' },
7090 { oid => '2712', descr => 'sample standard deviation of bigint input values',
7091 proname => 'stddev_samp', prokind => 'a', proisstrict => 'f',
7092 prorettype => 'numeric', proargtypes => 'int8', prosrc => 'aggregate_dummy' },
7093 { oid => '2713', descr => 'sample standard deviation of integer input values',
7094 proname => 'stddev_samp', prokind => 'a', proisstrict => 'f',
7095 prorettype => 'numeric', proargtypes => 'int4', prosrc => 'aggregate_dummy' },
7096 { oid => '2714',
7097 descr => 'sample standard deviation of smallint input values',
7098 proname => 'stddev_samp', prokind => 'a', proisstrict => 'f',
7099 prorettype => 'numeric', proargtypes => 'int2', prosrc => 'aggregate_dummy' },
7100 { oid => '2715', descr => 'sample standard deviation of float4 input values',
7101 proname => 'stddev_samp', prokind => 'a', proisstrict => 'f',
7102 prorettype => 'float8', proargtypes => 'float4',
7103 prosrc => 'aggregate_dummy' },
7104 { oid => '2716', descr => 'sample standard deviation of float8 input values',
7105 proname => 'stddev_samp', prokind => 'a', proisstrict => 'f',
7106 prorettype => 'float8', proargtypes => 'float8',
7107 prosrc => 'aggregate_dummy' },
7108 { oid => '2717', descr => 'sample standard deviation of numeric input values',
7109 proname => 'stddev_samp', prokind => 'a', proisstrict => 'f',
7110 prorettype => 'numeric', proargtypes => 'numeric',
7111 prosrc => 'aggregate_dummy' },
7113 { oid => '2154', descr => 'historical alias for stddev_samp',
7114 proname => 'stddev', prokind => 'a', proisstrict => 'f',
7115 prorettype => 'numeric', proargtypes => 'int8', prosrc => 'aggregate_dummy' },
7116 { oid => '2155', descr => 'historical alias for stddev_samp',
7117 proname => 'stddev', prokind => 'a', proisstrict => 'f',
7118 prorettype => 'numeric', proargtypes => 'int4', prosrc => 'aggregate_dummy' },
7119 { oid => '2156', descr => 'historical alias for stddev_samp',
7120 proname => 'stddev', prokind => 'a', proisstrict => 'f',
7121 prorettype => 'numeric', proargtypes => 'int2', prosrc => 'aggregate_dummy' },
7122 { oid => '2157', descr => 'historical alias for stddev_samp',
7123 proname => 'stddev', prokind => 'a', proisstrict => 'f',
7124 prorettype => 'float8', proargtypes => 'float4',
7125 prosrc => 'aggregate_dummy' },
7126 { oid => '2158', descr => 'historical alias for stddev_samp',
7127 proname => 'stddev', prokind => 'a', proisstrict => 'f',
7128 prorettype => 'float8', proargtypes => 'float8',
7129 prosrc => 'aggregate_dummy' },
7130 { oid => '2159', descr => 'historical alias for stddev_samp',
7131 proname => 'stddev', prokind => 'a', proisstrict => 'f',
7132 prorettype => 'numeric', proargtypes => 'numeric',
7133 prosrc => 'aggregate_dummy' },
7135 { oid => '2818',
7136 descr => 'number of input rows in which both expressions are not null',
7137 proname => 'regr_count', prokind => 'a', proisstrict => 'f',
7138 prorettype => 'int8', proargtypes => 'float8 float8',
7139 prosrc => 'aggregate_dummy' },
7140 { oid => '2819',
7141 descr => 'sum of squares of the independent variable (sum(X^2) - sum(X)^2/N)',
7142 proname => 'regr_sxx', prokind => 'a', proisstrict => 'f',
7143 prorettype => 'float8', proargtypes => 'float8 float8',
7144 prosrc => 'aggregate_dummy' },
7145 { oid => '2820',
7146 descr => 'sum of squares of the dependent variable (sum(Y^2) - sum(Y)^2/N)',
7147 proname => 'regr_syy', prokind => 'a', proisstrict => 'f',
7148 prorettype => 'float8', proargtypes => 'float8 float8',
7149 prosrc => 'aggregate_dummy' },
7150 { oid => '2821',
7151 descr => 'sum of products of independent times dependent variable (sum(X*Y) - sum(X) * sum(Y)/N)',
7152 proname => 'regr_sxy', prokind => 'a', proisstrict => 'f',
7153 prorettype => 'float8', proargtypes => 'float8 float8',
7154 prosrc => 'aggregate_dummy' },
7155 { oid => '2822', descr => 'average of the independent variable (sum(X)/N)',
7156 proname => 'regr_avgx', prokind => 'a', proisstrict => 'f',
7157 prorettype => 'float8', proargtypes => 'float8 float8',
7158 prosrc => 'aggregate_dummy' },
7159 { oid => '2823', descr => 'average of the dependent variable (sum(Y)/N)',
7160 proname => 'regr_avgy', prokind => 'a', proisstrict => 'f',
7161 prorettype => 'float8', proargtypes => 'float8 float8',
7162 prosrc => 'aggregate_dummy' },
7163 { oid => '2824', descr => 'square of the correlation coefficient',
7164 proname => 'regr_r2', prokind => 'a', proisstrict => 'f',
7165 prorettype => 'float8', proargtypes => 'float8 float8',
7166 prosrc => 'aggregate_dummy' },
7167 { oid => '2825',
7168 descr => 'slope of the least-squares-fit linear equation determined by the (X, Y) pairs',
7169 proname => 'regr_slope', prokind => 'a', proisstrict => 'f',
7170 prorettype => 'float8', proargtypes => 'float8 float8',
7171 prosrc => 'aggregate_dummy' },
7172 { oid => '2826',
7173 descr => 'y-intercept of the least-squares-fit linear equation determined by the (X, Y) pairs',
7174 proname => 'regr_intercept', prokind => 'a', proisstrict => 'f',
7175 prorettype => 'float8', proargtypes => 'float8 float8',
7176 prosrc => 'aggregate_dummy' },
7178 { oid => '2827', descr => 'population covariance',
7179 proname => 'covar_pop', prokind => 'a', proisstrict => 'f',
7180 prorettype => 'float8', proargtypes => 'float8 float8',
7181 prosrc => 'aggregate_dummy' },
7182 { oid => '2828', descr => 'sample covariance',
7183 proname => 'covar_samp', prokind => 'a', proisstrict => 'f',
7184 prorettype => 'float8', proargtypes => 'float8 float8',
7185 prosrc => 'aggregate_dummy' },
7186 { oid => '2829', descr => 'correlation coefficient',
7187 proname => 'corr', prokind => 'a', proisstrict => 'f', prorettype => 'float8',
7188 proargtypes => 'float8 float8', prosrc => 'aggregate_dummy' },
7190 { oid => '2160',
7191 proname => 'text_pattern_lt', proleakproof => 't', prorettype => 'bool',
7192 proargtypes => 'text text', prosrc => 'text_pattern_lt' },
7193 { oid => '2161',
7194 proname => 'text_pattern_le', proleakproof => 't', prorettype => 'bool',
7195 proargtypes => 'text text', prosrc => 'text_pattern_le' },
7196 { oid => '2163',
7197 proname => 'text_pattern_ge', proleakproof => 't', prorettype => 'bool',
7198 proargtypes => 'text text', prosrc => 'text_pattern_ge' },
7199 { oid => '2164',
7200 proname => 'text_pattern_gt', proleakproof => 't', prorettype => 'bool',
7201 proargtypes => 'text text', prosrc => 'text_pattern_gt' },
7202 { oid => '2166', descr => 'less-equal-greater',
7203 proname => 'bttext_pattern_cmp', proleakproof => 't', prorettype => 'int4',
7204 proargtypes => 'text text', prosrc => 'bttext_pattern_cmp' },
7205 { oid => '3332', descr => 'sort support',
7206 proname => 'bttext_pattern_sortsupport', prorettype => 'void',
7207 proargtypes => 'internal', prosrc => 'bttext_pattern_sortsupport' },
7209 { oid => '2174',
7210 proname => 'bpchar_pattern_lt', proleakproof => 't', prorettype => 'bool',
7211 proargtypes => 'bpchar bpchar', prosrc => 'bpchar_pattern_lt' },
7212 { oid => '2175',
7213 proname => 'bpchar_pattern_le', proleakproof => 't', prorettype => 'bool',
7214 proargtypes => 'bpchar bpchar', prosrc => 'bpchar_pattern_le' },
7215 { oid => '2177',
7216 proname => 'bpchar_pattern_ge', proleakproof => 't', prorettype => 'bool',
7217 proargtypes => 'bpchar bpchar', prosrc => 'bpchar_pattern_ge' },
7218 { oid => '2178',
7219 proname => 'bpchar_pattern_gt', proleakproof => 't', prorettype => 'bool',
7220 proargtypes => 'bpchar bpchar', prosrc => 'bpchar_pattern_gt' },
7221 { oid => '2180', descr => 'less-equal-greater',
7222 proname => 'btbpchar_pattern_cmp', proleakproof => 't', prorettype => 'int4',
7223 proargtypes => 'bpchar bpchar', prosrc => 'btbpchar_pattern_cmp' },
7224 { oid => '3333', descr => 'sort support',
7225 proname => 'btbpchar_pattern_sortsupport', prorettype => 'void',
7226 proargtypes => 'internal', prosrc => 'btbpchar_pattern_sortsupport' },
7228 { oid => '2188', descr => 'less-equal-greater',
7229 proname => 'btint48cmp', proleakproof => 't', prorettype => 'int4',
7230 proargtypes => 'int4 int8', prosrc => 'btint48cmp' },
7231 { oid => '2189', descr => 'less-equal-greater',
7232 proname => 'btint84cmp', proleakproof => 't', prorettype => 'int4',
7233 proargtypes => 'int8 int4', prosrc => 'btint84cmp' },
7234 { oid => '2190', descr => 'less-equal-greater',
7235 proname => 'btint24cmp', proleakproof => 't', prorettype => 'int4',
7236 proargtypes => 'int2 int4', prosrc => 'btint24cmp' },
7237 { oid => '2191', descr => 'less-equal-greater',
7238 proname => 'btint42cmp', proleakproof => 't', prorettype => 'int4',
7239 proargtypes => 'int4 int2', prosrc => 'btint42cmp' },
7240 { oid => '2192', descr => 'less-equal-greater',
7241 proname => 'btint28cmp', proleakproof => 't', prorettype => 'int4',
7242 proargtypes => 'int2 int8', prosrc => 'btint28cmp' },
7243 { oid => '2193', descr => 'less-equal-greater',
7244 proname => 'btint82cmp', proleakproof => 't', prorettype => 'int4',
7245 proargtypes => 'int8 int2', prosrc => 'btint82cmp' },
7246 { oid => '2194', descr => 'less-equal-greater',
7247 proname => 'btfloat48cmp', proleakproof => 't', prorettype => 'int4',
7248 proargtypes => 'float4 float8', prosrc => 'btfloat48cmp' },
7249 { oid => '2195', descr => 'less-equal-greater',
7250 proname => 'btfloat84cmp', proleakproof => 't', prorettype => 'int4',
7251 proargtypes => 'float8 float4', prosrc => 'btfloat84cmp' },
7253 { oid => '2212', descr => 'I/O',
7254 proname => 'regprocedurein', provolatile => 's', prorettype => 'regprocedure',
7255 proargtypes => 'cstring', prosrc => 'regprocedurein' },
7256 { oid => '2213', descr => 'I/O',
7257 proname => 'regprocedureout', provolatile => 's', prorettype => 'cstring',
7258 proargtypes => 'regprocedure', prosrc => 'regprocedureout' },
7259 { oid => '2214', descr => 'I/O',
7260 proname => 'regoperin', provolatile => 's', prorettype => 'regoper',
7261 proargtypes => 'cstring', prosrc => 'regoperin' },
7262 { oid => '2215', descr => 'I/O',
7263 proname => 'regoperout', provolatile => 's', prorettype => 'cstring',
7264 proargtypes => 'regoper', prosrc => 'regoperout' },
7265 { oid => '3492', descr => 'convert operator name to regoper',
7266 proname => 'to_regoper', provolatile => 's', prorettype => 'regoper',
7267 proargtypes => 'text', prosrc => 'to_regoper' },
7268 { oid => '3476', descr => 'convert operator name to regoperator',
7269 proname => 'to_regoperator', provolatile => 's', prorettype => 'regoperator',
7270 proargtypes => 'text', prosrc => 'to_regoperator' },
7271 { oid => '2216', descr => 'I/O',
7272 proname => 'regoperatorin', provolatile => 's', prorettype => 'regoperator',
7273 proargtypes => 'cstring', prosrc => 'regoperatorin' },
7274 { oid => '2217', descr => 'I/O',
7275 proname => 'regoperatorout', provolatile => 's', prorettype => 'cstring',
7276 proargtypes => 'regoperator', prosrc => 'regoperatorout' },
7277 { oid => '2218', descr => 'I/O',
7278 proname => 'regclassin', provolatile => 's', prorettype => 'regclass',
7279 proargtypes => 'cstring', prosrc => 'regclassin' },
7280 { oid => '2219', descr => 'I/O',
7281 proname => 'regclassout', provolatile => 's', prorettype => 'cstring',
7282 proargtypes => 'regclass', prosrc => 'regclassout' },
7283 { oid => '3495', descr => 'convert classname to regclass',
7284 proname => 'to_regclass', provolatile => 's', prorettype => 'regclass',
7285 proargtypes => 'text', prosrc => 'to_regclass' },
7286 { oid => '4193', descr => 'I/O',
7287 proname => 'regcollationin', provolatile => 's', prorettype => 'regcollation',
7288 proargtypes => 'cstring', prosrc => 'regcollationin' },
7289 { oid => '4194', descr => 'I/O',
7290 proname => 'regcollationout', provolatile => 's', prorettype => 'cstring',
7291 proargtypes => 'regcollation', prosrc => 'regcollationout' },
7292 { oid => '4195', descr => 'convert classname to regcollation',
7293 proname => 'to_regcollation', provolatile => 's',
7294 prorettype => 'regcollation', proargtypes => 'text',
7295 prosrc => 'to_regcollation' },
7296 { oid => '2220', descr => 'I/O',
7297 proname => 'regtypein', provolatile => 's', prorettype => 'regtype',
7298 proargtypes => 'cstring', prosrc => 'regtypein' },
7299 { oid => '2221', descr => 'I/O',
7300 proname => 'regtypeout', provolatile => 's', prorettype => 'cstring',
7301 proargtypes => 'regtype', prosrc => 'regtypeout' },
7302 { oid => '3493', descr => 'convert type name to regtype',
7303 proname => 'to_regtype', provolatile => 's', prorettype => 'regtype',
7304 proargtypes => 'text', prosrc => 'to_regtype' },
7305 { oid => '6317', descr => 'convert type name to type modifier',
7306 proname => 'to_regtypemod', provolatile => 's', prorettype => 'int4',
7307 proargtypes => 'text', prosrc => 'to_regtypemod' },
7308 { oid => '1079', descr => 'convert text to regclass',
7309 proname => 'regclass', provolatile => 's', prorettype => 'regclass',
7310 proargtypes => 'text', prosrc => 'text_regclass' },
7312 { oid => '4098', descr => 'I/O',
7313 proname => 'regrolein', provolatile => 's', prorettype => 'regrole',
7314 proargtypes => 'cstring', prosrc => 'regrolein' },
7315 { oid => '4092', descr => 'I/O',
7316 proname => 'regroleout', provolatile => 's', prorettype => 'cstring',
7317 proargtypes => 'regrole', prosrc => 'regroleout' },
7318 { oid => '4093', descr => 'convert role name to regrole',
7319 proname => 'to_regrole', provolatile => 's', prorettype => 'regrole',
7320 proargtypes => 'text', prosrc => 'to_regrole' },
7322 { oid => '4084', descr => 'I/O',
7323 proname => 'regnamespacein', provolatile => 's', prorettype => 'regnamespace',
7324 proargtypes => 'cstring', prosrc => 'regnamespacein' },
7325 { oid => '4085', descr => 'I/O',
7326 proname => 'regnamespaceout', provolatile => 's', prorettype => 'cstring',
7327 proargtypes => 'regnamespace', prosrc => 'regnamespaceout' },
7328 { oid => '4086', descr => 'convert namespace name to regnamespace',
7329 proname => 'to_regnamespace', provolatile => 's',
7330 prorettype => 'regnamespace', proargtypes => 'text',
7331 prosrc => 'to_regnamespace' },
7333 { oid => '6210', descr => 'test whether string is valid input for data type',
7334 proname => 'pg_input_is_valid', provolatile => 's', prorettype => 'bool',
7335 proargtypes => 'text text', prosrc => 'pg_input_is_valid' },
7336 { oid => '6211',
7337 descr => 'get error details if string is not valid input for data type',
7338 proname => 'pg_input_error_info', provolatile => 's', prorettype => 'record',
7339 proargtypes => 'text text',
7340 proallargtypes => '{text,text,text,text,text,text}',
7341 proargmodes => '{i,i,o,o,o,o}',
7342 proargnames => '{value,type_name,message,detail,hint,sql_error_code}',
7343 prosrc => 'pg_input_error_info' },
7345 { oid => '1268',
7346 descr => 'parse qualified identifier to array of identifiers',
7347 proname => 'parse_ident', prorettype => '_text', proargtypes => 'text bool',
7348 proargnames => '{str,strict}', prosrc => 'parse_ident' },
7350 { oid => '2246', descr => '(internal)',
7351 proname => 'fmgr_internal_validator', provolatile => 's',
7352 prorettype => 'void', proargtypes => 'oid',
7353 prosrc => 'fmgr_internal_validator' },
7354 { oid => '2247', descr => '(internal)',
7355 proname => 'fmgr_c_validator', provolatile => 's', prorettype => 'void',
7356 proargtypes => 'oid', prosrc => 'fmgr_c_validator' },
7357 { oid => '2248', descr => '(internal)',
7358 proname => 'fmgr_sql_validator', provolatile => 's', prorettype => 'void',
7359 proargtypes => 'oid', prosrc => 'fmgr_sql_validator' },
7361 { oid => '2250',
7362 descr => 'user privilege on database by username, database name',
7363 proname => 'has_database_privilege', provolatile => 's', prorettype => 'bool',
7364 proargtypes => 'name text text',
7365 prosrc => 'has_database_privilege_name_name' },
7366 { oid => '2251',
7367 descr => 'user privilege on database by username, database oid',
7368 proname => 'has_database_privilege', provolatile => 's', prorettype => 'bool',
7369 proargtypes => 'name oid text', prosrc => 'has_database_privilege_name_id' },
7370 { oid => '2252',
7371 descr => 'user privilege on database by user oid, database name',
7372 proname => 'has_database_privilege', provolatile => 's', prorettype => 'bool',
7373 proargtypes => 'oid text text', prosrc => 'has_database_privilege_id_name' },
7374 { oid => '2253',
7375 descr => 'user privilege on database by user oid, database oid',
7376 proname => 'has_database_privilege', provolatile => 's', prorettype => 'bool',
7377 proargtypes => 'oid oid text', prosrc => 'has_database_privilege_id_id' },
7378 { oid => '2254',
7379 descr => 'current user privilege on database by database name',
7380 proname => 'has_database_privilege', provolatile => 's', prorettype => 'bool',
7381 proargtypes => 'text text', prosrc => 'has_database_privilege_name' },
7382 { oid => '2255',
7383 descr => 'current user privilege on database by database oid',
7384 proname => 'has_database_privilege', provolatile => 's', prorettype => 'bool',
7385 proargtypes => 'oid text', prosrc => 'has_database_privilege_id' },
7387 { oid => '2256',
7388 descr => 'user privilege on function by username, function name',
7389 proname => 'has_function_privilege', provolatile => 's', prorettype => 'bool',
7390 proargtypes => 'name text text',
7391 prosrc => 'has_function_privilege_name_name' },
7392 { oid => '2257',
7393 descr => 'user privilege on function by username, function oid',
7394 proname => 'has_function_privilege', provolatile => 's', prorettype => 'bool',
7395 proargtypes => 'name oid text', prosrc => 'has_function_privilege_name_id' },
7396 { oid => '2258',
7397 descr => 'user privilege on function by user oid, function name',
7398 proname => 'has_function_privilege', provolatile => 's', prorettype => 'bool',
7399 proargtypes => 'oid text text', prosrc => 'has_function_privilege_id_name' },
7400 { oid => '2259',
7401 descr => 'user privilege on function by user oid, function oid',
7402 proname => 'has_function_privilege', provolatile => 's', prorettype => 'bool',
7403 proargtypes => 'oid oid text', prosrc => 'has_function_privilege_id_id' },
7404 { oid => '2260',
7405 descr => 'current user privilege on function by function name',
7406 proname => 'has_function_privilege', provolatile => 's', prorettype => 'bool',
7407 proargtypes => 'text text', prosrc => 'has_function_privilege_name' },
7408 { oid => '2261',
7409 descr => 'current user privilege on function by function oid',
7410 proname => 'has_function_privilege', provolatile => 's', prorettype => 'bool',
7411 proargtypes => 'oid text', prosrc => 'has_function_privilege_id' },
7413 { oid => '2262',
7414 descr => 'user privilege on language by username, language name',
7415 proname => 'has_language_privilege', provolatile => 's', prorettype => 'bool',
7416 proargtypes => 'name text text',
7417 prosrc => 'has_language_privilege_name_name' },
7418 { oid => '2263',
7419 descr => 'user privilege on language by username, language oid',
7420 proname => 'has_language_privilege', provolatile => 's', prorettype => 'bool',
7421 proargtypes => 'name oid text', prosrc => 'has_language_privilege_name_id' },
7422 { oid => '2264',
7423 descr => 'user privilege on language by user oid, language name',
7424 proname => 'has_language_privilege', provolatile => 's', prorettype => 'bool',
7425 proargtypes => 'oid text text', prosrc => 'has_language_privilege_id_name' },
7426 { oid => '2265',
7427 descr => 'user privilege on language by user oid, language oid',
7428 proname => 'has_language_privilege', provolatile => 's', prorettype => 'bool',
7429 proargtypes => 'oid oid text', prosrc => 'has_language_privilege_id_id' },
7430 { oid => '2266',
7431 descr => 'current user privilege on language by language name',
7432 proname => 'has_language_privilege', provolatile => 's', prorettype => 'bool',
7433 proargtypes => 'text text', prosrc => 'has_language_privilege_name' },
7434 { oid => '2267',
7435 descr => 'current user privilege on language by language oid',
7436 proname => 'has_language_privilege', provolatile => 's', prorettype => 'bool',
7437 proargtypes => 'oid text', prosrc => 'has_language_privilege_id' },
7439 { oid => '2268', descr => 'user privilege on schema by username, schema name',
7440 proname => 'has_schema_privilege', provolatile => 's', prorettype => 'bool',
7441 proargtypes => 'name text text', prosrc => 'has_schema_privilege_name_name' },
7442 { oid => '2269', descr => 'user privilege on schema by username, schema oid',
7443 proname => 'has_schema_privilege', provolatile => 's', prorettype => 'bool',
7444 proargtypes => 'name oid text', prosrc => 'has_schema_privilege_name_id' },
7445 { oid => '2270', descr => 'user privilege on schema by user oid, schema name',
7446 proname => 'has_schema_privilege', provolatile => 's', prorettype => 'bool',
7447 proargtypes => 'oid text text', prosrc => 'has_schema_privilege_id_name' },
7448 { oid => '2271', descr => 'user privilege on schema by user oid, schema oid',
7449 proname => 'has_schema_privilege', provolatile => 's', prorettype => 'bool',
7450 proargtypes => 'oid oid text', prosrc => 'has_schema_privilege_id_id' },
7451 { oid => '2272', descr => 'current user privilege on schema by schema name',
7452 proname => 'has_schema_privilege', provolatile => 's', prorettype => 'bool',
7453 proargtypes => 'text text', prosrc => 'has_schema_privilege_name' },
7454 { oid => '2273', descr => 'current user privilege on schema by schema oid',
7455 proname => 'has_schema_privilege', provolatile => 's', prorettype => 'bool',
7456 proargtypes => 'oid text', prosrc => 'has_schema_privilege_id' },
7458 { oid => '2390',
7459 descr => 'user privilege on tablespace by username, tablespace name',
7460 proname => 'has_tablespace_privilege', provolatile => 's',
7461 prorettype => 'bool', proargtypes => 'name text text',
7462 prosrc => 'has_tablespace_privilege_name_name' },
7463 { oid => '2391',
7464 descr => 'user privilege on tablespace by username, tablespace oid',
7465 proname => 'has_tablespace_privilege', provolatile => 's',
7466 prorettype => 'bool', proargtypes => 'name oid text',
7467 prosrc => 'has_tablespace_privilege_name_id' },
7468 { oid => '2392',
7469 descr => 'user privilege on tablespace by user oid, tablespace name',
7470 proname => 'has_tablespace_privilege', provolatile => 's',
7471 prorettype => 'bool', proargtypes => 'oid text text',
7472 prosrc => 'has_tablespace_privilege_id_name' },
7473 { oid => '2393',
7474 descr => 'user privilege on tablespace by user oid, tablespace oid',
7475 proname => 'has_tablespace_privilege', provolatile => 's',
7476 prorettype => 'bool', proargtypes => 'oid oid text',
7477 prosrc => 'has_tablespace_privilege_id_id' },
7478 { oid => '2394',
7479 descr => 'current user privilege on tablespace by tablespace name',
7480 proname => 'has_tablespace_privilege', provolatile => 's',
7481 prorettype => 'bool', proargtypes => 'text text',
7482 prosrc => 'has_tablespace_privilege_name' },
7483 { oid => '2395',
7484 descr => 'current user privilege on tablespace by tablespace oid',
7485 proname => 'has_tablespace_privilege', provolatile => 's',
7486 prorettype => 'bool', proargtypes => 'oid text',
7487 prosrc => 'has_tablespace_privilege_id' },
7489 { oid => '3000',
7490 descr => 'user privilege on foreign data wrapper by username, foreign data wrapper name',
7491 proname => 'has_foreign_data_wrapper_privilege', provolatile => 's',
7492 prorettype => 'bool', proargtypes => 'name text text',
7493 prosrc => 'has_foreign_data_wrapper_privilege_name_name' },
7494 { oid => '3001',
7495 descr => 'user privilege on foreign data wrapper by username, foreign data wrapper oid',
7496 proname => 'has_foreign_data_wrapper_privilege', provolatile => 's',
7497 prorettype => 'bool', proargtypes => 'name oid text',
7498 prosrc => 'has_foreign_data_wrapper_privilege_name_id' },
7499 { oid => '3002',
7500 descr => 'user privilege on foreign data wrapper by user oid, foreign data wrapper name',
7501 proname => 'has_foreign_data_wrapper_privilege', provolatile => 's',
7502 prorettype => 'bool', proargtypes => 'oid text text',
7503 prosrc => 'has_foreign_data_wrapper_privilege_id_name' },
7504 { oid => '3003',
7505 descr => 'user privilege on foreign data wrapper by user oid, foreign data wrapper oid',
7506 proname => 'has_foreign_data_wrapper_privilege', provolatile => 's',
7507 prorettype => 'bool', proargtypes => 'oid oid text',
7508 prosrc => 'has_foreign_data_wrapper_privilege_id_id' },
7509 { oid => '3004',
7510 descr => 'current user privilege on foreign data wrapper by foreign data wrapper name',
7511 proname => 'has_foreign_data_wrapper_privilege', provolatile => 's',
7512 prorettype => 'bool', proargtypes => 'text text',
7513 prosrc => 'has_foreign_data_wrapper_privilege_name' },
7514 { oid => '3005',
7515 descr => 'current user privilege on foreign data wrapper by foreign data wrapper oid',
7516 proname => 'has_foreign_data_wrapper_privilege', provolatile => 's',
7517 prorettype => 'bool', proargtypes => 'oid text',
7518 prosrc => 'has_foreign_data_wrapper_privilege_id' },
7520 { oid => '3006', descr => 'user privilege on server by username, server name',
7521 proname => 'has_server_privilege', provolatile => 's', prorettype => 'bool',
7522 proargtypes => 'name text text', prosrc => 'has_server_privilege_name_name' },
7523 { oid => '3007', descr => 'user privilege on server by username, server oid',
7524 proname => 'has_server_privilege', provolatile => 's', prorettype => 'bool',
7525 proargtypes => 'name oid text', prosrc => 'has_server_privilege_name_id' },
7526 { oid => '3008', descr => 'user privilege on server by user oid, server name',
7527 proname => 'has_server_privilege', provolatile => 's', prorettype => 'bool',
7528 proargtypes => 'oid text text', prosrc => 'has_server_privilege_id_name' },
7529 { oid => '3009', descr => 'user privilege on server by user oid, server oid',
7530 proname => 'has_server_privilege', provolatile => 's', prorettype => 'bool',
7531 proargtypes => 'oid oid text', prosrc => 'has_server_privilege_id_id' },
7532 { oid => '3010', descr => 'current user privilege on server by server name',
7533 proname => 'has_server_privilege', provolatile => 's', prorettype => 'bool',
7534 proargtypes => 'text text', prosrc => 'has_server_privilege_name' },
7535 { oid => '3011', descr => 'current user privilege on server by server oid',
7536 proname => 'has_server_privilege', provolatile => 's', prorettype => 'bool',
7537 proargtypes => 'oid text', prosrc => 'has_server_privilege_id' },
7539 { oid => '3138', descr => 'user privilege on type by username, type name',
7540 proname => 'has_type_privilege', provolatile => 's', prorettype => 'bool',
7541 proargtypes => 'name text text', prosrc => 'has_type_privilege_name_name' },
7542 { oid => '3139', descr => 'user privilege on type by username, type oid',
7543 proname => 'has_type_privilege', provolatile => 's', prorettype => 'bool',
7544 proargtypes => 'name oid text', prosrc => 'has_type_privilege_name_id' },
7545 { oid => '3140', descr => 'user privilege on type by user oid, type name',
7546 proname => 'has_type_privilege', provolatile => 's', prorettype => 'bool',
7547 proargtypes => 'oid text text', prosrc => 'has_type_privilege_id_name' },
7548 { oid => '3141', descr => 'user privilege on type by user oid, type oid',
7549 proname => 'has_type_privilege', provolatile => 's', prorettype => 'bool',
7550 proargtypes => 'oid oid text', prosrc => 'has_type_privilege_id_id' },
7551 { oid => '3142', descr => 'current user privilege on type by type name',
7552 proname => 'has_type_privilege', provolatile => 's', prorettype => 'bool',
7553 proargtypes => 'text text', prosrc => 'has_type_privilege_name' },
7554 { oid => '3143', descr => 'current user privilege on type by type oid',
7555 proname => 'has_type_privilege', provolatile => 's', prorettype => 'bool',
7556 proargtypes => 'oid text', prosrc => 'has_type_privilege_id' },
7558 { oid => '6205',
7559 descr => 'user privilege on parameter by username, parameter name',
7560 proname => 'has_parameter_privilege', provolatile => 's',
7561 prorettype => 'bool', proargtypes => 'name text text',
7562 prosrc => 'has_parameter_privilege_name_name' },
7563 { oid => '6206',
7564 descr => 'user privilege on parameter by user oid, parameter name',
7565 proname => 'has_parameter_privilege', provolatile => 's',
7566 prorettype => 'bool', proargtypes => 'oid text text',
7567 prosrc => 'has_parameter_privilege_id_name' },
7568 { oid => '6207',
7569 descr => 'current user privilege on parameter by parameter name',
7570 proname => 'has_parameter_privilege', provolatile => 's',
7571 prorettype => 'bool', proargtypes => 'text text',
7572 prosrc => 'has_parameter_privilege_name' },
7574 { oid => '2705', descr => 'user privilege on role by username, role name',
7575 proname => 'pg_has_role', provolatile => 's', prorettype => 'bool',
7576 proargtypes => 'name name text', prosrc => 'pg_has_role_name_name' },
7577 { oid => '2706', descr => 'user privilege on role by username, role oid',
7578 proname => 'pg_has_role', provolatile => 's', prorettype => 'bool',
7579 proargtypes => 'name oid text', prosrc => 'pg_has_role_name_id' },
7580 { oid => '2707', descr => 'user privilege on role by user oid, role name',
7581 proname => 'pg_has_role', provolatile => 's', prorettype => 'bool',
7582 proargtypes => 'oid name text', prosrc => 'pg_has_role_id_name' },
7583 { oid => '2708', descr => 'user privilege on role by user oid, role oid',
7584 proname => 'pg_has_role', provolatile => 's', prorettype => 'bool',
7585 proargtypes => 'oid oid text', prosrc => 'pg_has_role_id_id' },
7586 { oid => '2709', descr => 'current user privilege on role by role name',
7587 proname => 'pg_has_role', provolatile => 's', prorettype => 'bool',
7588 proargtypes => 'name text', prosrc => 'pg_has_role_name' },
7589 { oid => '2710', descr => 'current user privilege on role by role oid',
7590 proname => 'pg_has_role', provolatile => 's', prorettype => 'bool',
7591 proargtypes => 'oid text', prosrc => 'pg_has_role_id' },
7593 { oid => '1269',
7594 descr => 'bytes required to store the value, perhaps with compression',
7595 proname => 'pg_column_size', provolatile => 's', prorettype => 'int4',
7596 proargtypes => 'any', prosrc => 'pg_column_size' },
7597 { oid => '2121', descr => 'compression method for the compressed datum',
7598 proname => 'pg_column_compression', provolatile => 's', prorettype => 'text',
7599 proargtypes => 'any', prosrc => 'pg_column_compression' },
7600 { oid => '6316', descr => 'chunk ID of on-disk TOASTed value',
7601 proname => 'pg_column_toast_chunk_id', provolatile => 's',
7602 prorettype => 'oid', proargtypes => 'any',
7603 prosrc => 'pg_column_toast_chunk_id' },
7604 { oid => '2322',
7605 descr => 'total disk space usage for the specified tablespace',
7606 proname => 'pg_tablespace_size', provolatile => 'v', prorettype => 'int8',
7607 proargtypes => 'oid', prosrc => 'pg_tablespace_size_oid' },
7608 { oid => '2323',
7609 descr => 'total disk space usage for the specified tablespace',
7610 proname => 'pg_tablespace_size', provolatile => 'v', prorettype => 'int8',
7611 proargtypes => 'name', prosrc => 'pg_tablespace_size_name' },
7612 { oid => '2324', descr => 'total disk space usage for the specified database',
7613 proname => 'pg_database_size', provolatile => 'v', prorettype => 'int8',
7614 proargtypes => 'oid', prosrc => 'pg_database_size_oid' },
7615 { oid => '2168', descr => 'total disk space usage for the specified database',
7616 proname => 'pg_database_size', provolatile => 'v', prorettype => 'int8',
7617 proargtypes => 'name', prosrc => 'pg_database_size_name' },
7618 { oid => '2325',
7619 descr => 'disk space usage for the main fork of the specified table or index',
7620 proname => 'pg_relation_size', prolang => 'sql', provolatile => 'v',
7621 prorettype => 'int8', proargtypes => 'regclass',
7622 prosrc => 'see system_functions.sql' },
7623 { oid => '2332',
7624 descr => 'disk space usage for the specified fork of a table or index',
7625 proname => 'pg_relation_size', provolatile => 'v', prorettype => 'int8',
7626 proargtypes => 'regclass text', prosrc => 'pg_relation_size' },
7627 { oid => '2286',
7628 descr => 'total disk space usage for the specified table and associated indexes',
7629 proname => 'pg_total_relation_size', provolatile => 'v', prorettype => 'int8',
7630 proargtypes => 'regclass', prosrc => 'pg_total_relation_size' },
7631 { oid => '2288',
7632 descr => 'convert a long int to a human readable text using size units',
7633 proname => 'pg_size_pretty', prorettype => 'text', proargtypes => 'int8',
7634 prosrc => 'pg_size_pretty' },
7635 { oid => '3166',
7636 descr => 'convert a numeric to a human readable text using size units',
7637 proname => 'pg_size_pretty', prorettype => 'text', proargtypes => 'numeric',
7638 prosrc => 'pg_size_pretty_numeric' },
7639 { oid => '3334',
7640 descr => 'convert a size in human-readable format with size units into bytes',
7641 proname => 'pg_size_bytes', prorettype => 'int8', proargtypes => 'text',
7642 prosrc => 'pg_size_bytes' },
7643 { oid => '2997',
7644 descr => 'disk space usage for the specified table, including TOAST, free space and visibility map',
7645 proname => 'pg_table_size', provolatile => 'v', prorettype => 'int8',
7646 proargtypes => 'regclass', prosrc => 'pg_table_size' },
7647 { oid => '2998',
7648 descr => 'disk space usage for all indexes attached to the specified table',
7649 proname => 'pg_indexes_size', provolatile => 'v', prorettype => 'int8',
7650 proargtypes => 'regclass', prosrc => 'pg_indexes_size' },
7651 { oid => '2999', descr => 'filenode identifier of relation',
7652 proname => 'pg_relation_filenode', provolatile => 's', prorettype => 'oid',
7653 proargtypes => 'regclass', prosrc => 'pg_relation_filenode' },
7654 { oid => '3454', descr => 'relation OID for filenode and tablespace',
7655 proname => 'pg_filenode_relation', provolatile => 's',
7656 prorettype => 'regclass', proargtypes => 'oid oid',
7657 prosrc => 'pg_filenode_relation' },
7658 { oid => '3034', descr => 'file path of relation',
7659 proname => 'pg_relation_filepath', provolatile => 's', prorettype => 'text',
7660 proargtypes => 'regclass', prosrc => 'pg_relation_filepath' },
7662 { oid => '2316', descr => '(internal)',
7663 proname => 'postgresql_fdw_validator', prorettype => 'bool',
7664 proargtypes => '_text oid', prosrc => 'postgresql_fdw_validator' },
7666 { oid => '2290', descr => 'I/O',
7667 proname => 'record_in', provolatile => 's', prorettype => 'record',
7668 proargtypes => 'cstring oid int4', prosrc => 'record_in' },
7669 { oid => '2291', descr => 'I/O',
7670 proname => 'record_out', provolatile => 's', prorettype => 'cstring',
7671 proargtypes => 'record', prosrc => 'record_out' },
7672 { oid => '2292', descr => 'I/O',
7673 proname => 'cstring_in', prorettype => 'cstring', proargtypes => 'cstring',
7674 prosrc => 'cstring_in' },
7675 { oid => '2293', descr => 'I/O',
7676 proname => 'cstring_out', prorettype => 'cstring', proargtypes => 'cstring',
7677 prosrc => 'cstring_out' },
7678 { oid => '2294', descr => 'I/O',
7679 proname => 'any_in', prorettype => 'any', proargtypes => 'cstring',
7680 prosrc => 'any_in' },
7681 { oid => '2295', descr => 'I/O',
7682 proname => 'any_out', prorettype => 'cstring', proargtypes => 'any',
7683 prosrc => 'any_out' },
7684 { oid => '2296', descr => 'I/O',
7685 proname => 'anyarray_in', prorettype => 'anyarray', proargtypes => 'cstring',
7686 prosrc => 'anyarray_in' },
7687 { oid => '2297', descr => 'I/O',
7688 proname => 'anyarray_out', provolatile => 's', prorettype => 'cstring',
7689 proargtypes => 'anyarray', prosrc => 'anyarray_out' },
7690 { oid => '2298', descr => 'I/O',
7691 proname => 'void_in', prorettype => 'void', proargtypes => 'cstring',
7692 prosrc => 'void_in' },
7693 { oid => '2299', descr => 'I/O',
7694 proname => 'void_out', prorettype => 'cstring', proargtypes => 'void',
7695 prosrc => 'void_out' },
7696 { oid => '2300', descr => 'I/O',
7697 proname => 'trigger_in', proisstrict => 'f', prorettype => 'trigger',
7698 proargtypes => 'cstring', prosrc => 'trigger_in' },
7699 { oid => '2301', descr => 'I/O',
7700 proname => 'trigger_out', prorettype => 'cstring', proargtypes => 'trigger',
7701 prosrc => 'trigger_out' },
7702 { oid => '3594', descr => 'I/O',
7703 proname => 'event_trigger_in', proisstrict => 'f',
7704 prorettype => 'event_trigger', proargtypes => 'cstring',
7705 prosrc => 'event_trigger_in' },
7706 { oid => '3595', descr => 'I/O',
7707 proname => 'event_trigger_out', prorettype => 'cstring',
7708 proargtypes => 'event_trigger', prosrc => 'event_trigger_out' },
7709 { oid => '2302', descr => 'I/O',
7710 proname => 'language_handler_in', proisstrict => 'f',
7711 prorettype => 'language_handler', proargtypes => 'cstring',
7712 prosrc => 'language_handler_in' },
7713 { oid => '2303', descr => 'I/O',
7714 proname => 'language_handler_out', prorettype => 'cstring',
7715 proargtypes => 'language_handler', prosrc => 'language_handler_out' },
7716 { oid => '2304', descr => 'I/O',
7717 proname => 'internal_in', proisstrict => 'f', prorettype => 'internal',
7718 proargtypes => 'cstring', prosrc => 'internal_in' },
7719 { oid => '2305', descr => 'I/O',
7720 proname => 'internal_out', prorettype => 'cstring', proargtypes => 'internal',
7721 prosrc => 'internal_out' },
7722 { oid => '2312', descr => 'I/O',
7723 proname => 'anyelement_in', prorettype => 'anyelement',
7724 proargtypes => 'cstring', prosrc => 'anyelement_in' },
7725 { oid => '2313', descr => 'I/O',
7726 proname => 'anyelement_out', prorettype => 'cstring',
7727 proargtypes => 'anyelement', prosrc => 'anyelement_out' },
7728 { oid => '2398', descr => 'I/O',
7729 proname => 'shell_in', proisstrict => 'f', prorettype => 'void',
7730 proargtypes => 'cstring', prosrc => 'shell_in' },
7731 { oid => '2399', descr => 'I/O',
7732 proname => 'shell_out', prorettype => 'cstring', proargtypes => 'void',
7733 prosrc => 'shell_out' },
7734 { oid => '2597', descr => 'I/O',
7735 proname => 'domain_in', proisstrict => 'f', provolatile => 's',
7736 prorettype => 'any', proargtypes => 'cstring oid int4',
7737 prosrc => 'domain_in' },
7738 { oid => '2598', descr => 'I/O',
7739 proname => 'domain_recv', proisstrict => 'f', provolatile => 's',
7740 prorettype => 'any', proargtypes => 'internal oid int4',
7741 prosrc => 'domain_recv' },
7742 { oid => '2777', descr => 'I/O',
7743 proname => 'anynonarray_in', prorettype => 'anynonarray',
7744 proargtypes => 'cstring', prosrc => 'anynonarray_in' },
7745 { oid => '2778', descr => 'I/O',
7746 proname => 'anynonarray_out', prorettype => 'cstring',
7747 proargtypes => 'anynonarray', prosrc => 'anynonarray_out' },
7748 { oid => '3116', descr => 'I/O',
7749 proname => 'fdw_handler_in', proisstrict => 'f', prorettype => 'fdw_handler',
7750 proargtypes => 'cstring', prosrc => 'fdw_handler_in' },
7751 { oid => '3117', descr => 'I/O',
7752 proname => 'fdw_handler_out', prorettype => 'cstring',
7753 proargtypes => 'fdw_handler', prosrc => 'fdw_handler_out' },
7754 { oid => '326', descr => 'I/O',
7755 proname => 'index_am_handler_in', proisstrict => 'f',
7756 prorettype => 'index_am_handler', proargtypes => 'cstring',
7757 prosrc => 'index_am_handler_in' },
7758 { oid => '327', descr => 'I/O',
7759 proname => 'index_am_handler_out', prorettype => 'cstring',
7760 proargtypes => 'index_am_handler', prosrc => 'index_am_handler_out' },
7761 { oid => '3311', descr => 'I/O',
7762 proname => 'tsm_handler_in', proisstrict => 'f', prorettype => 'tsm_handler',
7763 proargtypes => 'cstring', prosrc => 'tsm_handler_in' },
7764 { oid => '3312', descr => 'I/O',
7765 proname => 'tsm_handler_out', prorettype => 'cstring',
7766 proargtypes => 'tsm_handler', prosrc => 'tsm_handler_out' },
7767 { oid => '267', descr => 'I/O',
7768 proname => 'table_am_handler_in', proisstrict => 'f',
7769 prorettype => 'table_am_handler', proargtypes => 'cstring',
7770 prosrc => 'table_am_handler_in' },
7771 { oid => '268', descr => 'I/O',
7772 proname => 'table_am_handler_out', prorettype => 'cstring',
7773 proargtypes => 'table_am_handler', prosrc => 'table_am_handler_out' },
7774 { oid => '5086', descr => 'I/O',
7775 proname => 'anycompatible_in', prorettype => 'anycompatible',
7776 proargtypes => 'cstring', prosrc => 'anycompatible_in' },
7777 { oid => '5087', descr => 'I/O',
7778 proname => 'anycompatible_out', prorettype => 'cstring',
7779 proargtypes => 'anycompatible', prosrc => 'anycompatible_out' },
7780 { oid => '5088', descr => 'I/O',
7781 proname => 'anycompatiblearray_in', prorettype => 'anycompatiblearray',
7782 proargtypes => 'cstring', prosrc => 'anycompatiblearray_in' },
7783 { oid => '5089', descr => 'I/O',
7784 proname => 'anycompatiblearray_out', provolatile => 's',
7785 prorettype => 'cstring', proargtypes => 'anycompatiblearray',
7786 prosrc => 'anycompatiblearray_out' },
7787 { oid => '5090', descr => 'I/O',
7788 proname => 'anycompatiblearray_recv', provolatile => 's',
7789 prorettype => 'anycompatiblearray', proargtypes => 'internal',
7790 prosrc => 'anycompatiblearray_recv' },
7791 { oid => '5091', descr => 'I/O',
7792 proname => 'anycompatiblearray_send', provolatile => 's',
7793 prorettype => 'bytea', proargtypes => 'anycompatiblearray',
7794 prosrc => 'anycompatiblearray_send' },
7795 { oid => '5092', descr => 'I/O',
7796 proname => 'anycompatiblenonarray_in', prorettype => 'anycompatiblenonarray',
7797 proargtypes => 'cstring', prosrc => 'anycompatiblenonarray_in' },
7798 { oid => '5093', descr => 'I/O',
7799 proname => 'anycompatiblenonarray_out', prorettype => 'cstring',
7800 proargtypes => 'anycompatiblenonarray',
7801 prosrc => 'anycompatiblenonarray_out' },
7802 { oid => '5094', descr => 'I/O',
7803 proname => 'anycompatiblerange_in', provolatile => 's',
7804 prorettype => 'anycompatiblerange', proargtypes => 'cstring oid int4',
7805 prosrc => 'anycompatiblerange_in' },
7806 { oid => '5095', descr => 'I/O',
7807 proname => 'anycompatiblerange_out', provolatile => 's',
7808 prorettype => 'cstring', proargtypes => 'anycompatiblerange',
7809 prosrc => 'anycompatiblerange_out' },
7810 { oid => '4226', descr => 'I/O',
7811 proname => 'anycompatiblemultirange_in', provolatile => 's',
7812 prorettype => 'anycompatiblemultirange', proargtypes => 'cstring oid int4',
7813 prosrc => 'anycompatiblemultirange_in' },
7814 { oid => '4227', descr => 'I/O',
7815 proname => 'anycompatiblemultirange_out', provolatile => 's',
7816 prorettype => 'cstring', proargtypes => 'anycompatiblemultirange',
7817 prosrc => 'anycompatiblemultirange_out' },
7819 # tablesample method handlers
7820 { oid => '3313', descr => 'BERNOULLI tablesample method handler',
7821 proname => 'bernoulli', provolatile => 'v', prorettype => 'tsm_handler',
7822 proargtypes => 'internal', prosrc => 'tsm_bernoulli_handler' },
7823 { oid => '3314', descr => 'SYSTEM tablesample method handler',
7824 proname => 'system', provolatile => 'v', prorettype => 'tsm_handler',
7825 proargtypes => 'internal', prosrc => 'tsm_system_handler' },
7827 # CRC variants
7828 { oid => '8571', descr => 'CRC-32 value',
7829 proname => 'crc32', proleakproof => 't', prorettype => 'int8',
7830 proargtypes => 'bytea', prosrc => 'crc32_bytea' },
7831 { oid => '8572', descr => 'CRC-32C value',
7832 proname => 'crc32c', proleakproof => 't', prorettype => 'int8',
7833 proargtypes => 'bytea', prosrc => 'crc32c_bytea' },
7835 # cryptographic
7836 { oid => '2311', descr => 'MD5 hash',
7837 proname => 'md5', proleakproof => 't', prorettype => 'text',
7838 proargtypes => 'text', prosrc => 'md5_text' },
7839 { oid => '2321', descr => 'MD5 hash',
7840 proname => 'md5', proleakproof => 't', prorettype => 'text',
7841 proargtypes => 'bytea', prosrc => 'md5_bytea' },
7842 { oid => '3419', descr => 'SHA-224 hash',
7843 proname => 'sha224', proleakproof => 't', prorettype => 'bytea',
7844 proargtypes => 'bytea', prosrc => 'sha224_bytea' },
7845 { oid => '3420', descr => 'SHA-256 hash',
7846 proname => 'sha256', proleakproof => 't', prorettype => 'bytea',
7847 proargtypes => 'bytea', prosrc => 'sha256_bytea' },
7848 { oid => '3421', descr => 'SHA-384 hash',
7849 proname => 'sha384', proleakproof => 't', prorettype => 'bytea',
7850 proargtypes => 'bytea', prosrc => 'sha384_bytea' },
7851 { oid => '3422', descr => 'SHA-512 hash',
7852 proname => 'sha512', proleakproof => 't', prorettype => 'bytea',
7853 proargtypes => 'bytea', prosrc => 'sha512_bytea' },
7855 # crosstype operations for date vs. timestamp and timestamptz
7856 { oid => '2338',
7857 proname => 'date_lt_timestamp', prorettype => 'bool',
7858 proargtypes => 'date timestamp', prosrc => 'date_lt_timestamp' },
7859 { oid => '2339',
7860 proname => 'date_le_timestamp', prorettype => 'bool',
7861 proargtypes => 'date timestamp', prosrc => 'date_le_timestamp' },
7862 { oid => '2340',
7863 proname => 'date_eq_timestamp', prorettype => 'bool',
7864 proargtypes => 'date timestamp', prosrc => 'date_eq_timestamp' },
7865 { oid => '2341',
7866 proname => 'date_gt_timestamp', prorettype => 'bool',
7867 proargtypes => 'date timestamp', prosrc => 'date_gt_timestamp' },
7868 { oid => '2342',
7869 proname => 'date_ge_timestamp', prorettype => 'bool',
7870 proargtypes => 'date timestamp', prosrc => 'date_ge_timestamp' },
7871 { oid => '2343',
7872 proname => 'date_ne_timestamp', prorettype => 'bool',
7873 proargtypes => 'date timestamp', prosrc => 'date_ne_timestamp' },
7874 { oid => '2344', descr => 'less-equal-greater',
7875 proname => 'date_cmp_timestamp', prorettype => 'int4',
7876 proargtypes => 'date timestamp', prosrc => 'date_cmp_timestamp' },
7878 { oid => '2351',
7879 proname => 'date_lt_timestamptz', provolatile => 's', prorettype => 'bool',
7880 proargtypes => 'date timestamptz', prosrc => 'date_lt_timestamptz' },
7881 { oid => '2352',
7882 proname => 'date_le_timestamptz', provolatile => 's', prorettype => 'bool',
7883 proargtypes => 'date timestamptz', prosrc => 'date_le_timestamptz' },
7884 { oid => '2353',
7885 proname => 'date_eq_timestamptz', provolatile => 's', prorettype => 'bool',
7886 proargtypes => 'date timestamptz', prosrc => 'date_eq_timestamptz' },
7887 { oid => '2354',
7888 proname => 'date_gt_timestamptz', provolatile => 's', prorettype => 'bool',
7889 proargtypes => 'date timestamptz', prosrc => 'date_gt_timestamptz' },
7890 { oid => '2355',
7891 proname => 'date_ge_timestamptz', provolatile => 's', prorettype => 'bool',
7892 proargtypes => 'date timestamptz', prosrc => 'date_ge_timestamptz' },
7893 { oid => '2356',
7894 proname => 'date_ne_timestamptz', provolatile => 's', prorettype => 'bool',
7895 proargtypes => 'date timestamptz', prosrc => 'date_ne_timestamptz' },
7896 { oid => '2357', descr => 'less-equal-greater',
7897 proname => 'date_cmp_timestamptz', provolatile => 's', prorettype => 'int4',
7898 proargtypes => 'date timestamptz', prosrc => 'date_cmp_timestamptz' },
7900 { oid => '2364',
7901 proname => 'timestamp_lt_date', prorettype => 'bool',
7902 proargtypes => 'timestamp date', prosrc => 'timestamp_lt_date' },
7903 { oid => '2365',
7904 proname => 'timestamp_le_date', prorettype => 'bool',
7905 proargtypes => 'timestamp date', prosrc => 'timestamp_le_date' },
7906 { oid => '2366',
7907 proname => 'timestamp_eq_date', prorettype => 'bool',
7908 proargtypes => 'timestamp date', prosrc => 'timestamp_eq_date' },
7909 { oid => '2367',
7910 proname => 'timestamp_gt_date', prorettype => 'bool',
7911 proargtypes => 'timestamp date', prosrc => 'timestamp_gt_date' },
7912 { oid => '2368',
7913 proname => 'timestamp_ge_date', prorettype => 'bool',
7914 proargtypes => 'timestamp date', prosrc => 'timestamp_ge_date' },
7915 { oid => '2369',
7916 proname => 'timestamp_ne_date', prorettype => 'bool',
7917 proargtypes => 'timestamp date', prosrc => 'timestamp_ne_date' },
7918 { oid => '2370', descr => 'less-equal-greater',
7919 proname => 'timestamp_cmp_date', prorettype => 'int4',
7920 proargtypes => 'timestamp date', prosrc => 'timestamp_cmp_date' },
7922 { oid => '2377',
7923 proname => 'timestamptz_lt_date', provolatile => 's', prorettype => 'bool',
7924 proargtypes => 'timestamptz date', prosrc => 'timestamptz_lt_date' },
7925 { oid => '2378',
7926 proname => 'timestamptz_le_date', provolatile => 's', prorettype => 'bool',
7927 proargtypes => 'timestamptz date', prosrc => 'timestamptz_le_date' },
7928 { oid => '2379',
7929 proname => 'timestamptz_eq_date', provolatile => 's', prorettype => 'bool',
7930 proargtypes => 'timestamptz date', prosrc => 'timestamptz_eq_date' },
7931 { oid => '2380',
7932 proname => 'timestamptz_gt_date', provolatile => 's', prorettype => 'bool',
7933 proargtypes => 'timestamptz date', prosrc => 'timestamptz_gt_date' },
7934 { oid => '2381',
7935 proname => 'timestamptz_ge_date', provolatile => 's', prorettype => 'bool',
7936 proargtypes => 'timestamptz date', prosrc => 'timestamptz_ge_date' },
7937 { oid => '2382',
7938 proname => 'timestamptz_ne_date', provolatile => 's', prorettype => 'bool',
7939 proargtypes => 'timestamptz date', prosrc => 'timestamptz_ne_date' },
7940 { oid => '2383', descr => 'less-equal-greater',
7941 proname => 'timestamptz_cmp_date', provolatile => 's', prorettype => 'int4',
7942 proargtypes => 'timestamptz date', prosrc => 'timestamptz_cmp_date' },
7944 # crosstype operations for timestamp vs. timestamptz
7945 { oid => '2520',
7946 proname => 'timestamp_lt_timestamptz', provolatile => 's',
7947 prorettype => 'bool', proargtypes => 'timestamp timestamptz',
7948 prosrc => 'timestamp_lt_timestamptz' },
7949 { oid => '2521',
7950 proname => 'timestamp_le_timestamptz', provolatile => 's',
7951 prorettype => 'bool', proargtypes => 'timestamp timestamptz',
7952 prosrc => 'timestamp_le_timestamptz' },
7953 { oid => '2522',
7954 proname => 'timestamp_eq_timestamptz', provolatile => 's',
7955 prorettype => 'bool', proargtypes => 'timestamp timestamptz',
7956 prosrc => 'timestamp_eq_timestamptz' },
7957 { oid => '2523',
7958 proname => 'timestamp_gt_timestamptz', provolatile => 's',
7959 prorettype => 'bool', proargtypes => 'timestamp timestamptz',
7960 prosrc => 'timestamp_gt_timestamptz' },
7961 { oid => '2524',
7962 proname => 'timestamp_ge_timestamptz', provolatile => 's',
7963 prorettype => 'bool', proargtypes => 'timestamp timestamptz',
7964 prosrc => 'timestamp_ge_timestamptz' },
7965 { oid => '2525',
7966 proname => 'timestamp_ne_timestamptz', provolatile => 's',
7967 prorettype => 'bool', proargtypes => 'timestamp timestamptz',
7968 prosrc => 'timestamp_ne_timestamptz' },
7969 { oid => '2526', descr => 'less-equal-greater',
7970 proname => 'timestamp_cmp_timestamptz', provolatile => 's',
7971 prorettype => 'int4', proargtypes => 'timestamp timestamptz',
7972 prosrc => 'timestamp_cmp_timestamptz' },
7974 { oid => '2527',
7975 proname => 'timestamptz_lt_timestamp', provolatile => 's',
7976 prorettype => 'bool', proargtypes => 'timestamptz timestamp',
7977 prosrc => 'timestamptz_lt_timestamp' },
7978 { oid => '2528',
7979 proname => 'timestamptz_le_timestamp', provolatile => 's',
7980 prorettype => 'bool', proargtypes => 'timestamptz timestamp',
7981 prosrc => 'timestamptz_le_timestamp' },
7982 { oid => '2529',
7983 proname => 'timestamptz_eq_timestamp', provolatile => 's',
7984 prorettype => 'bool', proargtypes => 'timestamptz timestamp',
7985 prosrc => 'timestamptz_eq_timestamp' },
7986 { oid => '2530',
7987 proname => 'timestamptz_gt_timestamp', provolatile => 's',
7988 prorettype => 'bool', proargtypes => 'timestamptz timestamp',
7989 prosrc => 'timestamptz_gt_timestamp' },
7990 { oid => '2531',
7991 proname => 'timestamptz_ge_timestamp', provolatile => 's',
7992 prorettype => 'bool', proargtypes => 'timestamptz timestamp',
7993 prosrc => 'timestamptz_ge_timestamp' },
7994 { oid => '2532',
7995 proname => 'timestamptz_ne_timestamp', provolatile => 's',
7996 prorettype => 'bool', proargtypes => 'timestamptz timestamp',
7997 prosrc => 'timestamptz_ne_timestamp' },
7998 { oid => '2533', descr => 'less-equal-greater',
7999 proname => 'timestamptz_cmp_timestamp', provolatile => 's',
8000 prorettype => 'int4', proargtypes => 'timestamptz timestamp',
8001 prosrc => 'timestamptz_cmp_timestamp' },
8003 # send/receive functions
8004 { oid => '2400', descr => 'I/O',
8005 proname => 'array_recv', provolatile => 's', prorettype => 'anyarray',
8006 proargtypes => 'internal oid int4', prosrc => 'array_recv' },
8007 { oid => '2401', descr => 'I/O',
8008 proname => 'array_send', provolatile => 's', prorettype => 'bytea',
8009 proargtypes => 'anyarray', prosrc => 'array_send' },
8010 { oid => '2402', descr => 'I/O',
8011 proname => 'record_recv', provolatile => 's', prorettype => 'record',
8012 proargtypes => 'internal oid int4', prosrc => 'record_recv' },
8013 { oid => '2403', descr => 'I/O',
8014 proname => 'record_send', provolatile => 's', prorettype => 'bytea',
8015 proargtypes => 'record', prosrc => 'record_send' },
8016 { oid => '2404', descr => 'I/O',
8017 proname => 'int2recv', prorettype => 'int2', proargtypes => 'internal',
8018 prosrc => 'int2recv' },
8019 { oid => '2405', descr => 'I/O',
8020 proname => 'int2send', prorettype => 'bytea', proargtypes => 'int2',
8021 prosrc => 'int2send' },
8022 { oid => '2406', descr => 'I/O',
8023 proname => 'int4recv', prorettype => 'int4', proargtypes => 'internal',
8024 prosrc => 'int4recv' },
8025 { oid => '2407', descr => 'I/O',
8026 proname => 'int4send', prorettype => 'bytea', proargtypes => 'int4',
8027 prosrc => 'int4send' },
8028 { oid => '2408', descr => 'I/O',
8029 proname => 'int8recv', prorettype => 'int8', proargtypes => 'internal',
8030 prosrc => 'int8recv' },
8031 { oid => '2409', descr => 'I/O',
8032 proname => 'int8send', prorettype => 'bytea', proargtypes => 'int8',
8033 prosrc => 'int8send' },
8034 { oid => '2410', descr => 'I/O',
8035 proname => 'int2vectorrecv', prorettype => 'int2vector',
8036 proargtypes => 'internal', prosrc => 'int2vectorrecv' },
8037 { oid => '2411', descr => 'I/O',
8038 proname => 'int2vectorsend', prorettype => 'bytea',
8039 proargtypes => 'int2vector', prosrc => 'int2vectorsend' },
8040 { oid => '2412', descr => 'I/O',
8041 proname => 'bytearecv', prorettype => 'bytea', proargtypes => 'internal',
8042 prosrc => 'bytearecv' },
8043 { oid => '2413', descr => 'I/O',
8044 proname => 'byteasend', prorettype => 'bytea', proargtypes => 'bytea',
8045 prosrc => 'byteasend' },
8046 { oid => '2414', descr => 'I/O',
8047 proname => 'textrecv', provolatile => 's', prorettype => 'text',
8048 proargtypes => 'internal', prosrc => 'textrecv' },
8049 { oid => '2415', descr => 'I/O',
8050 proname => 'textsend', provolatile => 's', prorettype => 'bytea',
8051 proargtypes => 'text', prosrc => 'textsend' },
8052 { oid => '2416', descr => 'I/O',
8053 proname => 'unknownrecv', prorettype => 'unknown', proargtypes => 'internal',
8054 prosrc => 'unknownrecv' },
8055 { oid => '2417', descr => 'I/O',
8056 proname => 'unknownsend', prorettype => 'bytea', proargtypes => 'unknown',
8057 prosrc => 'unknownsend' },
8058 { oid => '2418', descr => 'I/O',
8059 proname => 'oidrecv', prorettype => 'oid', proargtypes => 'internal',
8060 prosrc => 'oidrecv' },
8061 { oid => '2419', descr => 'I/O',
8062 proname => 'oidsend', prorettype => 'bytea', proargtypes => 'oid',
8063 prosrc => 'oidsend' },
8064 { oid => '2420', descr => 'I/O',
8065 proname => 'oidvectorrecv', prorettype => 'oidvector',
8066 proargtypes => 'internal', prosrc => 'oidvectorrecv' },
8067 { oid => '2421', descr => 'I/O',
8068 proname => 'oidvectorsend', prorettype => 'bytea', proargtypes => 'oidvector',
8069 prosrc => 'oidvectorsend' },
8070 { oid => '2422', descr => 'I/O',
8071 proname => 'namerecv', provolatile => 's', prorettype => 'name',
8072 proargtypes => 'internal', prosrc => 'namerecv' },
8073 { oid => '2423', descr => 'I/O',
8074 proname => 'namesend', provolatile => 's', prorettype => 'bytea',
8075 proargtypes => 'name', prosrc => 'namesend' },
8076 { oid => '2424', descr => 'I/O',
8077 proname => 'float4recv', prorettype => 'float4', proargtypes => 'internal',
8078 prosrc => 'float4recv' },
8079 { oid => '2425', descr => 'I/O',
8080 proname => 'float4send', prorettype => 'bytea', proargtypes => 'float4',
8081 prosrc => 'float4send' },
8082 { oid => '2426', descr => 'I/O',
8083 proname => 'float8recv', prorettype => 'float8', proargtypes => 'internal',
8084 prosrc => 'float8recv' },
8085 { oid => '2427', descr => 'I/O',
8086 proname => 'float8send', prorettype => 'bytea', proargtypes => 'float8',
8087 prosrc => 'float8send' },
8088 { oid => '2428', descr => 'I/O',
8089 proname => 'point_recv', prorettype => 'point', proargtypes => 'internal',
8090 prosrc => 'point_recv' },
8091 { oid => '2429', descr => 'I/O',
8092 proname => 'point_send', prorettype => 'bytea', proargtypes => 'point',
8093 prosrc => 'point_send' },
8094 { oid => '2430', descr => 'I/O',
8095 proname => 'bpcharrecv', provolatile => 's', prorettype => 'bpchar',
8096 proargtypes => 'internal oid int4', prosrc => 'bpcharrecv' },
8097 { oid => '2431', descr => 'I/O',
8098 proname => 'bpcharsend', provolatile => 's', prorettype => 'bytea',
8099 proargtypes => 'bpchar', prosrc => 'bpcharsend' },
8100 { oid => '2432', descr => 'I/O',
8101 proname => 'varcharrecv', provolatile => 's', prorettype => 'varchar',
8102 proargtypes => 'internal oid int4', prosrc => 'varcharrecv' },
8103 { oid => '2433', descr => 'I/O',
8104 proname => 'varcharsend', provolatile => 's', prorettype => 'bytea',
8105 proargtypes => 'varchar', prosrc => 'varcharsend' },
8106 { oid => '2434', descr => 'I/O',
8107 proname => 'charrecv', prorettype => 'char', proargtypes => 'internal',
8108 prosrc => 'charrecv' },
8109 { oid => '2435', descr => 'I/O',
8110 proname => 'charsend', prorettype => 'bytea', proargtypes => 'char',
8111 prosrc => 'charsend' },
8112 { oid => '2436', descr => 'I/O',
8113 proname => 'boolrecv', prorettype => 'bool', proargtypes => 'internal',
8114 prosrc => 'boolrecv' },
8115 { oid => '2437', descr => 'I/O',
8116 proname => 'boolsend', prorettype => 'bytea', proargtypes => 'bool',
8117 prosrc => 'boolsend' },
8118 { oid => '2438', descr => 'I/O',
8119 proname => 'tidrecv', prorettype => 'tid', proargtypes => 'internal',
8120 prosrc => 'tidrecv' },
8121 { oid => '2439', descr => 'I/O',
8122 proname => 'tidsend', prorettype => 'bytea', proargtypes => 'tid',
8123 prosrc => 'tidsend' },
8124 { oid => '2440', descr => 'I/O',
8125 proname => 'xidrecv', prorettype => 'xid', proargtypes => 'internal',
8126 prosrc => 'xidrecv' },
8127 { oid => '2441', descr => 'I/O',
8128 proname => 'xidsend', prorettype => 'bytea', proargtypes => 'xid',
8129 prosrc => 'xidsend' },
8130 { oid => '2442', descr => 'I/O',
8131 proname => 'cidrecv', prorettype => 'cid', proargtypes => 'internal',
8132 prosrc => 'cidrecv' },
8133 { oid => '2443', descr => 'I/O',
8134 proname => 'cidsend', prorettype => 'bytea', proargtypes => 'cid',
8135 prosrc => 'cidsend' },
8136 { oid => '2444', descr => 'I/O',
8137 proname => 'regprocrecv', prorettype => 'regproc', proargtypes => 'internal',
8138 prosrc => 'regprocrecv' },
8139 { oid => '2445', descr => 'I/O',
8140 proname => 'regprocsend', prorettype => 'bytea', proargtypes => 'regproc',
8141 prosrc => 'regprocsend' },
8142 { oid => '2446', descr => 'I/O',
8143 proname => 'regprocedurerecv', prorettype => 'regprocedure',
8144 proargtypes => 'internal', prosrc => 'regprocedurerecv' },
8145 { oid => '2447', descr => 'I/O',
8146 proname => 'regproceduresend', prorettype => 'bytea',
8147 proargtypes => 'regprocedure', prosrc => 'regproceduresend' },
8148 { oid => '2448', descr => 'I/O',
8149 proname => 'regoperrecv', prorettype => 'regoper', proargtypes => 'internal',
8150 prosrc => 'regoperrecv' },
8151 { oid => '2449', descr => 'I/O',
8152 proname => 'regopersend', prorettype => 'bytea', proargtypes => 'regoper',
8153 prosrc => 'regopersend' },
8154 { oid => '2450', descr => 'I/O',
8155 proname => 'regoperatorrecv', prorettype => 'regoperator',
8156 proargtypes => 'internal', prosrc => 'regoperatorrecv' },
8157 { oid => '2451', descr => 'I/O',
8158 proname => 'regoperatorsend', prorettype => 'bytea',
8159 proargtypes => 'regoperator', prosrc => 'regoperatorsend' },
8160 { oid => '2452', descr => 'I/O',
8161 proname => 'regclassrecv', prorettype => 'regclass',
8162 proargtypes => 'internal', prosrc => 'regclassrecv' },
8163 { oid => '2453', descr => 'I/O',
8164 proname => 'regclasssend', prorettype => 'bytea', proargtypes => 'regclass',
8165 prosrc => 'regclasssend' },
8166 { oid => '4196', descr => 'I/O',
8167 proname => 'regcollationrecv', prorettype => 'regcollation',
8168 proargtypes => 'internal', prosrc => 'regcollationrecv' },
8169 { oid => '4197', descr => 'I/O',
8170 proname => 'regcollationsend', prorettype => 'bytea',
8171 proargtypes => 'regcollation', prosrc => 'regcollationsend' },
8172 { oid => '2454', descr => 'I/O',
8173 proname => 'regtyperecv', prorettype => 'regtype', proargtypes => 'internal',
8174 prosrc => 'regtyperecv' },
8175 { oid => '2455', descr => 'I/O',
8176 proname => 'regtypesend', prorettype => 'bytea', proargtypes => 'regtype',
8177 prosrc => 'regtypesend' },
8179 { oid => '4094', descr => 'I/O',
8180 proname => 'regrolerecv', prorettype => 'regrole', proargtypes => 'internal',
8181 prosrc => 'regrolerecv' },
8182 { oid => '4095', descr => 'I/O',
8183 proname => 'regrolesend', prorettype => 'bytea', proargtypes => 'regrole',
8184 prosrc => 'regrolesend' },
8185 { oid => '4087', descr => 'I/O',
8186 proname => 'regnamespacerecv', prorettype => 'regnamespace',
8187 proargtypes => 'internal', prosrc => 'regnamespacerecv' },
8188 { oid => '4088', descr => 'I/O',
8189 proname => 'regnamespacesend', prorettype => 'bytea',
8190 proargtypes => 'regnamespace', prosrc => 'regnamespacesend' },
8191 { oid => '2456', descr => 'I/O',
8192 proname => 'bit_recv', prorettype => 'bit',
8193 proargtypes => 'internal oid int4', prosrc => 'bit_recv' },
8194 { oid => '2457', descr => 'I/O',
8195 proname => 'bit_send', prorettype => 'bytea', proargtypes => 'bit',
8196 prosrc => 'bit_send' },
8197 { oid => '2458', descr => 'I/O',
8198 proname => 'varbit_recv', prorettype => 'varbit',
8199 proargtypes => 'internal oid int4', prosrc => 'varbit_recv' },
8200 { oid => '2459', descr => 'I/O',
8201 proname => 'varbit_send', prorettype => 'bytea', proargtypes => 'varbit',
8202 prosrc => 'varbit_send' },
8203 { oid => '2460', descr => 'I/O',
8204 proname => 'numeric_recv', prorettype => 'numeric',
8205 proargtypes => 'internal oid int4', prosrc => 'numeric_recv' },
8206 { oid => '2461', descr => 'I/O',
8207 proname => 'numeric_send', prorettype => 'bytea', proargtypes => 'numeric',
8208 prosrc => 'numeric_send' },
8209 { oid => '2468', descr => 'I/O',
8210 proname => 'date_recv', prorettype => 'date', proargtypes => 'internal',
8211 prosrc => 'date_recv' },
8212 { oid => '2469', descr => 'I/O',
8213 proname => 'date_send', prorettype => 'bytea', proargtypes => 'date',
8214 prosrc => 'date_send' },
8215 { oid => '2470', descr => 'I/O',
8216 proname => 'time_recv', prorettype => 'time',
8217 proargtypes => 'internal oid int4', prosrc => 'time_recv' },
8218 { oid => '2471', descr => 'I/O',
8219 proname => 'time_send', prorettype => 'bytea', proargtypes => 'time',
8220 prosrc => 'time_send' },
8221 { oid => '2472', descr => 'I/O',
8222 proname => 'timetz_recv', prorettype => 'timetz',
8223 proargtypes => 'internal oid int4', prosrc => 'timetz_recv' },
8224 { oid => '2473', descr => 'I/O',
8225 proname => 'timetz_send', prorettype => 'bytea', proargtypes => 'timetz',
8226 prosrc => 'timetz_send' },
8227 { oid => '2474', descr => 'I/O',
8228 proname => 'timestamp_recv', prorettype => 'timestamp',
8229 proargtypes => 'internal oid int4', prosrc => 'timestamp_recv' },
8230 { oid => '2475', descr => 'I/O',
8231 proname => 'timestamp_send', prorettype => 'bytea',
8232 proargtypes => 'timestamp', prosrc => 'timestamp_send' },
8233 { oid => '2476', descr => 'I/O',
8234 proname => 'timestamptz_recv', prorettype => 'timestamptz',
8235 proargtypes => 'internal oid int4', prosrc => 'timestamptz_recv' },
8236 { oid => '2477', descr => 'I/O',
8237 proname => 'timestamptz_send', prorettype => 'bytea',
8238 proargtypes => 'timestamptz', prosrc => 'timestamptz_send' },
8239 { oid => '2478', descr => 'I/O',
8240 proname => 'interval_recv', prorettype => 'interval',
8241 proargtypes => 'internal oid int4', prosrc => 'interval_recv' },
8242 { oid => '2479', descr => 'I/O',
8243 proname => 'interval_send', prorettype => 'bytea', proargtypes => 'interval',
8244 prosrc => 'interval_send' },
8245 { oid => '2480', descr => 'I/O',
8246 proname => 'lseg_recv', prorettype => 'lseg', proargtypes => 'internal',
8247 prosrc => 'lseg_recv' },
8248 { oid => '2481', descr => 'I/O',
8249 proname => 'lseg_send', prorettype => 'bytea', proargtypes => 'lseg',
8250 prosrc => 'lseg_send' },
8251 { oid => '2482', descr => 'I/O',
8252 proname => 'path_recv', prorettype => 'path', proargtypes => 'internal',
8253 prosrc => 'path_recv' },
8254 { oid => '2483', descr => 'I/O',
8255 proname => 'path_send', prorettype => 'bytea', proargtypes => 'path',
8256 prosrc => 'path_send' },
8257 { oid => '2484', descr => 'I/O',
8258 proname => 'box_recv', prorettype => 'box', proargtypes => 'internal',
8259 prosrc => 'box_recv' },
8260 { oid => '2485', descr => 'I/O',
8261 proname => 'box_send', prorettype => 'bytea', proargtypes => 'box',
8262 prosrc => 'box_send' },
8263 { oid => '2486', descr => 'I/O',
8264 proname => 'poly_recv', prorettype => 'polygon', proargtypes => 'internal',
8265 prosrc => 'poly_recv' },
8266 { oid => '2487', descr => 'I/O',
8267 proname => 'poly_send', prorettype => 'bytea', proargtypes => 'polygon',
8268 prosrc => 'poly_send' },
8269 { oid => '2488', descr => 'I/O',
8270 proname => 'line_recv', prorettype => 'line', proargtypes => 'internal',
8271 prosrc => 'line_recv' },
8272 { oid => '2489', descr => 'I/O',
8273 proname => 'line_send', prorettype => 'bytea', proargtypes => 'line',
8274 prosrc => 'line_send' },
8275 { oid => '2490', descr => 'I/O',
8276 proname => 'circle_recv', prorettype => 'circle', proargtypes => 'internal',
8277 prosrc => 'circle_recv' },
8278 { oid => '2491', descr => 'I/O',
8279 proname => 'circle_send', prorettype => 'bytea', proargtypes => 'circle',
8280 prosrc => 'circle_send' },
8281 { oid => '2492', descr => 'I/O',
8282 proname => 'cash_recv', prorettype => 'money', proargtypes => 'internal',
8283 prosrc => 'cash_recv' },
8284 { oid => '2493', descr => 'I/O',
8285 proname => 'cash_send', prorettype => 'bytea', proargtypes => 'money',
8286 prosrc => 'cash_send' },
8287 { oid => '2494', descr => 'I/O',
8288 proname => 'macaddr_recv', prorettype => 'macaddr', proargtypes => 'internal',
8289 prosrc => 'macaddr_recv' },
8290 { oid => '2495', descr => 'I/O',
8291 proname => 'macaddr_send', prorettype => 'bytea', proargtypes => 'macaddr',
8292 prosrc => 'macaddr_send' },
8293 { oid => '2496', descr => 'I/O',
8294 proname => 'inet_recv', prorettype => 'inet', proargtypes => 'internal',
8295 prosrc => 'inet_recv' },
8296 { oid => '2497', descr => 'I/O',
8297 proname => 'inet_send', prorettype => 'bytea', proargtypes => 'inet',
8298 prosrc => 'inet_send' },
8299 { oid => '2498', descr => 'I/O',
8300 proname => 'cidr_recv', prorettype => 'cidr', proargtypes => 'internal',
8301 prosrc => 'cidr_recv' },
8302 { oid => '2499', descr => 'I/O',
8303 proname => 'cidr_send', prorettype => 'bytea', proargtypes => 'cidr',
8304 prosrc => 'cidr_send' },
8305 { oid => '2500', descr => 'I/O',
8306 proname => 'cstring_recv', provolatile => 's', prorettype => 'cstring',
8307 proargtypes => 'internal', prosrc => 'cstring_recv' },
8308 { oid => '2501', descr => 'I/O',
8309 proname => 'cstring_send', provolatile => 's', prorettype => 'bytea',
8310 proargtypes => 'cstring', prosrc => 'cstring_send' },
8311 { oid => '2502', descr => 'I/O',
8312 proname => 'anyarray_recv', provolatile => 's', prorettype => 'anyarray',
8313 proargtypes => 'internal', prosrc => 'anyarray_recv' },
8314 { oid => '2503', descr => 'I/O',
8315 proname => 'anyarray_send', provolatile => 's', prorettype => 'bytea',
8316 proargtypes => 'anyarray', prosrc => 'anyarray_send' },
8317 { oid => '3120', descr => 'I/O',
8318 proname => 'void_recv', prorettype => 'void', proargtypes => 'internal',
8319 prosrc => 'void_recv' },
8320 { oid => '3121', descr => 'I/O',
8321 proname => 'void_send', prorettype => 'bytea', proargtypes => 'void',
8322 prosrc => 'void_send' },
8323 { oid => '3446', descr => 'I/O',
8324 proname => 'macaddr8_recv', prorettype => 'macaddr8',
8325 proargtypes => 'internal', prosrc => 'macaddr8_recv' },
8326 { oid => '3447', descr => 'I/O',
8327 proname => 'macaddr8_send', prorettype => 'bytea', proargtypes => 'macaddr8',
8328 prosrc => 'macaddr8_send' },
8330 # System-view support functions with pretty-print option
8331 { oid => '2504', descr => 'source text of a rule with pretty-print option',
8332 proname => 'pg_get_ruledef', provolatile => 's', prorettype => 'text',
8333 proargtypes => 'oid bool', prosrc => 'pg_get_ruledef_ext' },
8334 { oid => '2505',
8335 descr => 'select statement of a view with pretty-print option',
8336 proname => 'pg_get_viewdef', provolatile => 's', proparallel => 'r',
8337 prorettype => 'text', proargtypes => 'text bool',
8338 prosrc => 'pg_get_viewdef_name_ext' },
8339 { oid => '2506',
8340 descr => 'select statement of a view with pretty-print option',
8341 proname => 'pg_get_viewdef', provolatile => 's', proparallel => 'r',
8342 prorettype => 'text', proargtypes => 'oid bool',
8343 prosrc => 'pg_get_viewdef_ext' },
8344 { oid => '3159',
8345 descr => 'select statement of a view with pretty-printing and specified line wrapping',
8346 proname => 'pg_get_viewdef', provolatile => 's', proparallel => 'r',
8347 prorettype => 'text', proargtypes => 'oid int4',
8348 prosrc => 'pg_get_viewdef_wrap' },
8349 { oid => '2507',
8350 descr => 'index description (full create statement or single expression) with pretty-print option',
8351 proname => 'pg_get_indexdef', provolatile => 's', prorettype => 'text',
8352 proargtypes => 'oid int4 bool', prosrc => 'pg_get_indexdef_ext' },
8353 { oid => '2508', descr => 'constraint description with pretty-print option',
8354 proname => 'pg_get_constraintdef', provolatile => 's', prorettype => 'text',
8355 proargtypes => 'oid bool', prosrc => 'pg_get_constraintdef_ext' },
8356 { oid => '2509',
8357 descr => 'deparse an encoded expression with pretty-print option',
8358 proname => 'pg_get_expr', provolatile => 's', prorettype => 'text',
8359 proargtypes => 'pg_node_tree oid bool', prosrc => 'pg_get_expr_ext' },
8360 { oid => '2510', descr => 'get the prepared statements for this session',
8361 proname => 'pg_prepared_statement', prorows => '1000', proretset => 't',
8362 provolatile => 's', proparallel => 'r', prorettype => 'record',
8363 proargtypes => '',
8364 proallargtypes => '{text,text,timestamptz,_regtype,_regtype,bool,int8,int8}',
8365 proargmodes => '{o,o,o,o,o,o,o,o}',
8366 proargnames => '{name,statement,prepare_time,parameter_types,result_types,from_sql,generic_plans,custom_plans}',
8367 prosrc => 'pg_prepared_statement' },
8368 { oid => '2511', descr => 'get the open cursors for this session',
8369 proname => 'pg_cursor', prorows => '1000', proretset => 't',
8370 provolatile => 's', proparallel => 'r', prorettype => 'record',
8371 proargtypes => '', proallargtypes => '{text,text,bool,bool,bool,timestamptz}',
8372 proargmodes => '{o,o,o,o,o,o}',
8373 proargnames => '{name,statement,is_holdable,is_binary,is_scrollable,creation_time}',
8374 prosrc => 'pg_cursor' },
8375 { oid => '2599', descr => 'get the available time zone abbreviations',
8376 proname => 'pg_timezone_abbrevs', prorows => '1000', proretset => 't',
8377 provolatile => 's', prorettype => 'record', proargtypes => '',
8378 proallargtypes => '{text,interval,bool}', proargmodes => '{o,o,o}',
8379 proargnames => '{abbrev,utc_offset,is_dst}',
8380 prosrc => 'pg_timezone_abbrevs' },
8381 { oid => '2856', descr => 'get the available time zone names',
8382 proname => 'pg_timezone_names', prorows => '1000', proretset => 't',
8383 provolatile => 's', prorettype => 'record', proargtypes => '',
8384 proallargtypes => '{text,text,interval,bool}', proargmodes => '{o,o,o,o}',
8385 proargnames => '{name,abbrev,utc_offset,is_dst}',
8386 prosrc => 'pg_timezone_names' },
8387 { oid => '2730', descr => 'trigger description with pretty-print option',
8388 proname => 'pg_get_triggerdef', provolatile => 's', prorettype => 'text',
8389 proargtypes => 'oid bool', prosrc => 'pg_get_triggerdef_ext' },
8391 # asynchronous notifications
8392 { oid => '3035',
8393 descr => 'get the channels that the current backend listens to',
8394 proname => 'pg_listening_channels', prorows => '10', proretset => 't',
8395 provolatile => 's', proparallel => 'r', prorettype => 'text',
8396 proargtypes => '', prosrc => 'pg_listening_channels' },
8397 { oid => '3036', descr => 'send a notification event',
8398 proname => 'pg_notify', proisstrict => 'f', provolatile => 'v',
8399 proparallel => 'r', prorettype => 'void', proargtypes => 'text text',
8400 prosrc => 'pg_notify' },
8401 { oid => '3296',
8402 descr => 'get the fraction of the asynchronous notification queue currently in use',
8403 proname => 'pg_notification_queue_usage', provolatile => 'v',
8404 proparallel => 'r', prorettype => 'float8', proargtypes => '',
8405 prosrc => 'pg_notification_queue_usage' },
8407 # shared memory usage
8408 { oid => '5052', descr => 'allocations from the main shared memory segment',
8409 proname => 'pg_get_shmem_allocations', prorows => '50', proretset => 't',
8410 provolatile => 'v', prorettype => 'record', proargtypes => '',
8411 proallargtypes => '{text,int8,int8,int8}', proargmodes => '{o,o,o,o}',
8412 proargnames => '{name,off,size,allocated_size}',
8413 prosrc => 'pg_get_shmem_allocations' },
8415 # memory context of local backend
8416 { oid => '2282',
8417 descr => 'information about all memory contexts of local backend',
8418 proname => 'pg_get_backend_memory_contexts', prorows => '100',
8419 proretset => 't', provolatile => 'v', proparallel => 'r',
8420 prorettype => 'record', proargtypes => '',
8421 proallargtypes => '{text,text,text,int4,_int4,int8,int8,int8,int8,int8}',
8422 proargmodes => '{o,o,o,o,o,o,o,o,o,o}',
8423 proargnames => '{name, ident, type, level, path, total_bytes, total_nblocks, free_bytes, free_chunks, used_bytes}',
8424 prosrc => 'pg_get_backend_memory_contexts' },
8426 # logging memory contexts of the specified backend
8427 { oid => '4543', descr => 'log memory contexts of the specified backend',
8428 proname => 'pg_log_backend_memory_contexts', provolatile => 'v',
8429 prorettype => 'bool', proargtypes => 'int4',
8430 prosrc => 'pg_log_backend_memory_contexts' },
8432 # non-persistent series generator
8433 { oid => '1066', descr => 'non-persistent series generator',
8434 proname => 'generate_series', prorows => '1000',
8435 prosupport => 'generate_series_int4_support', proretset => 't',
8436 prorettype => 'int4', proargtypes => 'int4 int4 int4',
8437 prosrc => 'generate_series_step_int4' },
8438 { oid => '1067', descr => 'non-persistent series generator',
8439 proname => 'generate_series', prorows => '1000',
8440 prosupport => 'generate_series_int4_support', proretset => 't',
8441 prorettype => 'int4', proargtypes => 'int4 int4',
8442 prosrc => 'generate_series_int4' },
8443 { oid => '3994', descr => 'planner support for generate_series',
8444 proname => 'generate_series_int4_support', prorettype => 'internal',
8445 proargtypes => 'internal', prosrc => 'generate_series_int4_support' },
8446 { oid => '1068', descr => 'non-persistent series generator',
8447 proname => 'generate_series', prorows => '1000',
8448 prosupport => 'generate_series_int8_support', proretset => 't',
8449 prorettype => 'int8', proargtypes => 'int8 int8 int8',
8450 prosrc => 'generate_series_step_int8' },
8451 { oid => '1069', descr => 'non-persistent series generator',
8452 proname => 'generate_series', prorows => '1000',
8453 prosupport => 'generate_series_int8_support', proretset => 't',
8454 prorettype => 'int8', proargtypes => 'int8 int8',
8455 prosrc => 'generate_series_int8' },
8456 { oid => '3995', descr => 'planner support for generate_series',
8457 proname => 'generate_series_int8_support', prorettype => 'internal',
8458 proargtypes => 'internal', prosrc => 'generate_series_int8_support' },
8459 { oid => '3259', descr => 'non-persistent series generator',
8460 proname => 'generate_series', prorows => '1000', proretset => 't',
8461 prorettype => 'numeric', proargtypes => 'numeric numeric numeric',
8462 prosrc => 'generate_series_step_numeric' },
8463 { oid => '3260', descr => 'non-persistent series generator',
8464 proname => 'generate_series', prorows => '1000', proretset => 't',
8465 prorettype => 'numeric', proargtypes => 'numeric numeric',
8466 prosrc => 'generate_series_numeric' },
8467 { oid => '938', descr => 'non-persistent series generator',
8468 proname => 'generate_series', prorows => '1000',
8469 prosupport => 'generate_series_timestamp_support', proretset => 't',
8470 prorettype => 'timestamp', proargtypes => 'timestamp timestamp interval',
8471 prosrc => 'generate_series_timestamp' },
8472 { oid => '939', descr => 'non-persistent series generator',
8473 proname => 'generate_series', prorows => '1000',
8474 prosupport => 'generate_series_timestamp_support', proretset => 't',
8475 provolatile => 's', prorettype => 'timestamptz',
8476 proargtypes => 'timestamptz timestamptz interval',
8477 prosrc => 'generate_series_timestamptz' },
8478 { oid => '6274', descr => 'non-persistent series generator',
8479 proname => 'generate_series', prorows => '1000',
8480 prosupport => 'generate_series_timestamp_support', proretset => 't',
8481 prorettype => 'timestamptz',
8482 proargtypes => 'timestamptz timestamptz interval text',
8483 prosrc => 'generate_series_timestamptz_at_zone' },
8484 { oid => '8402', descr => 'planner support for generate_series',
8485 proname => 'generate_series_timestamp_support', prorettype => 'internal',
8486 proargtypes => 'internal', prosrc => 'generate_series_timestamp_support' },
8488 # boolean aggregates
8489 { oid => '2515', descr => 'aggregate transition function',
8490 proname => 'booland_statefunc', prorettype => 'bool',
8491 proargtypes => 'bool bool', prosrc => 'booland_statefunc' },
8492 { oid => '2516', descr => 'aggregate transition function',
8493 proname => 'boolor_statefunc', prorettype => 'bool',
8494 proargtypes => 'bool bool', prosrc => 'boolor_statefunc' },
8495 { oid => '3496', descr => 'aggregate transition function',
8496 proname => 'bool_accum', proisstrict => 'f', prorettype => 'internal',
8497 proargtypes => 'internal bool', prosrc => 'bool_accum' },
8498 { oid => '3497', descr => 'aggregate transition function',
8499 proname => 'bool_accum_inv', proisstrict => 'f', prorettype => 'internal',
8500 proargtypes => 'internal bool', prosrc => 'bool_accum_inv' },
8501 { oid => '3498', descr => 'aggregate final function',
8502 proname => 'bool_alltrue', prorettype => 'bool', proargtypes => 'internal',
8503 prosrc => 'bool_alltrue' },
8504 { oid => '3499', descr => 'aggregate final function',
8505 proname => 'bool_anytrue', prorettype => 'bool', proargtypes => 'internal',
8506 prosrc => 'bool_anytrue' },
8507 { oid => '2517', descr => 'boolean-and aggregate',
8508 proname => 'bool_and', prokind => 'a', proisstrict => 'f',
8509 prorettype => 'bool', proargtypes => 'bool', prosrc => 'aggregate_dummy' },
8511 # ANY, SOME? These names conflict with subquery operators. See doc.
8512 { oid => '2518', descr => 'boolean-or aggregate',
8513 proname => 'bool_or', prokind => 'a', proisstrict => 'f',
8514 prorettype => 'bool', proargtypes => 'bool', prosrc => 'aggregate_dummy' },
8515 { oid => '2519', descr => 'boolean-and aggregate',
8516 proname => 'every', prokind => 'a', proisstrict => 'f', prorettype => 'bool',
8517 proargtypes => 'bool', prosrc => 'aggregate_dummy' },
8519 # bitwise integer aggregates
8520 { oid => '2236', descr => 'bitwise-and smallint aggregate',
8521 proname => 'bit_and', prokind => 'a', proisstrict => 'f',
8522 prorettype => 'int2', proargtypes => 'int2', prosrc => 'aggregate_dummy' },
8523 { oid => '2237', descr => 'bitwise-or smallint aggregate',
8524 proname => 'bit_or', prokind => 'a', proisstrict => 'f', prorettype => 'int2',
8525 proargtypes => 'int2', prosrc => 'aggregate_dummy' },
8526 { oid => '6164', descr => 'bitwise-xor smallint aggregate',
8527 proname => 'bit_xor', prokind => 'a', proisstrict => 'f',
8528 prorettype => 'int2', proargtypes => 'int2', prosrc => 'aggregate_dummy' },
8529 { oid => '2238', descr => 'bitwise-and integer aggregate',
8530 proname => 'bit_and', prokind => 'a', proisstrict => 'f',
8531 prorettype => 'int4', proargtypes => 'int4', prosrc => 'aggregate_dummy' },
8532 { oid => '2239', descr => 'bitwise-or integer aggregate',
8533 proname => 'bit_or', prokind => 'a', proisstrict => 'f', prorettype => 'int4',
8534 proargtypes => 'int4', prosrc => 'aggregate_dummy' },
8535 { oid => '6165', descr => 'bitwise-xor integer aggregate',
8536 proname => 'bit_xor', prokind => 'a', proisstrict => 'f',
8537 prorettype => 'int4', proargtypes => 'int4', prosrc => 'aggregate_dummy' },
8538 { oid => '2240', descr => 'bitwise-and bigint aggregate',
8539 proname => 'bit_and', prokind => 'a', proisstrict => 'f',
8540 prorettype => 'int8', proargtypes => 'int8', prosrc => 'aggregate_dummy' },
8541 { oid => '2241', descr => 'bitwise-or bigint aggregate',
8542 proname => 'bit_or', prokind => 'a', proisstrict => 'f', prorettype => 'int8',
8543 proargtypes => 'int8', prosrc => 'aggregate_dummy' },
8544 { oid => '6166', descr => 'bitwise-xor bigint aggregate',
8545 proname => 'bit_xor', prokind => 'a', proisstrict => 'f',
8546 prorettype => 'int8', proargtypes => 'int8', prosrc => 'aggregate_dummy' },
8547 { oid => '2242', descr => 'bitwise-and bit aggregate',
8548 proname => 'bit_and', prokind => 'a', proisstrict => 'f', prorettype => 'bit',
8549 proargtypes => 'bit', prosrc => 'aggregate_dummy' },
8550 { oid => '2243', descr => 'bitwise-or bit aggregate',
8551 proname => 'bit_or', prokind => 'a', proisstrict => 'f', prorettype => 'bit',
8552 proargtypes => 'bit', prosrc => 'aggregate_dummy' },
8553 { oid => '6167', descr => 'bitwise-xor bit aggregate',
8554 proname => 'bit_xor', prokind => 'a', proisstrict => 'f', prorettype => 'bit',
8555 proargtypes => 'bit', prosrc => 'aggregate_dummy' },
8557 # formerly-missing interval + datetime operators
8558 { oid => '2546',
8559 proname => 'interval_pl_date', prolang => 'sql', prorettype => 'timestamp',
8560 proargtypes => 'interval date', prosrc => 'see system_functions.sql' },
8561 { oid => '2547',
8562 proname => 'interval_pl_timetz', prolang => 'sql', prorettype => 'timetz',
8563 proargtypes => 'interval timetz', prosrc => 'see system_functions.sql' },
8564 { oid => '2548',
8565 proname => 'interval_pl_timestamp', prolang => 'sql',
8566 prorettype => 'timestamp', proargtypes => 'interval timestamp',
8567 prosrc => 'see system_functions.sql' },
8568 { oid => '2549',
8569 proname => 'interval_pl_timestamptz', prolang => 'sql', provolatile => 's',
8570 prorettype => 'timestamptz', proargtypes => 'interval timestamptz',
8571 prosrc => 'see system_functions.sql' },
8572 { oid => '2550',
8573 proname => 'integer_pl_date', prolang => 'sql', prorettype => 'date',
8574 proargtypes => 'int4 date', prosrc => 'see system_functions.sql' },
8576 { oid => '2556', descr => 'get OIDs of databases in a tablespace',
8577 proname => 'pg_tablespace_databases', prorows => '1000', proretset => 't',
8578 provolatile => 's', prorettype => 'oid', proargtypes => 'oid',
8579 prosrc => 'pg_tablespace_databases' },
8581 { oid => '2557', descr => 'convert int4 to boolean',
8582 proname => 'bool', proleakproof => 't', prorettype => 'bool',
8583 proargtypes => 'int4', prosrc => 'int4_bool' },
8584 { oid => '2558', descr => 'convert boolean to int4',
8585 proname => 'int4', proleakproof => 't', prorettype => 'int4',
8586 proargtypes => 'bool', prosrc => 'bool_int4' },
8587 { oid => '2559', descr => 'current value from last used sequence',
8588 proname => 'lastval', provolatile => 'v', proparallel => 'u',
8589 prorettype => 'int8', proargtypes => '', prosrc => 'lastval' },
8591 # start time function
8592 { oid => '2560', descr => 'postmaster start time',
8593 proname => 'pg_postmaster_start_time', provolatile => 's',
8594 prorettype => 'timestamptz', proargtypes => '',
8595 prosrc => 'pg_postmaster_start_time' },
8597 # config reload time function
8598 { oid => '2034', descr => 'configuration load time',
8599 proname => 'pg_conf_load_time', provolatile => 's', proparallel => 'r',
8600 prorettype => 'timestamptz', proargtypes => '',
8601 prosrc => 'pg_conf_load_time' },
8603 # new functions for Y-direction rtree opclasses
8604 { oid => '2562',
8605 proname => 'box_below', prorettype => 'bool', proargtypes => 'box box',
8606 prosrc => 'box_below' },
8607 { oid => '2563',
8608 proname => 'box_overbelow', prorettype => 'bool', proargtypes => 'box box',
8609 prosrc => 'box_overbelow' },
8610 { oid => '2564',
8611 proname => 'box_overabove', prorettype => 'bool', proargtypes => 'box box',
8612 prosrc => 'box_overabove' },
8613 { oid => '2565',
8614 proname => 'box_above', prorettype => 'bool', proargtypes => 'box box',
8615 prosrc => 'box_above' },
8616 { oid => '2566',
8617 proname => 'poly_below', prorettype => 'bool',
8618 proargtypes => 'polygon polygon', prosrc => 'poly_below' },
8619 { oid => '2567',
8620 proname => 'poly_overbelow', prorettype => 'bool',
8621 proargtypes => 'polygon polygon', prosrc => 'poly_overbelow' },
8622 { oid => '2568',
8623 proname => 'poly_overabove', prorettype => 'bool',
8624 proargtypes => 'polygon polygon', prosrc => 'poly_overabove' },
8625 { oid => '2569',
8626 proname => 'poly_above', prorettype => 'bool',
8627 proargtypes => 'polygon polygon', prosrc => 'poly_above' },
8628 { oid => '2587',
8629 proname => 'circle_overbelow', prorettype => 'bool',
8630 proargtypes => 'circle circle', prosrc => 'circle_overbelow' },
8631 { oid => '2588',
8632 proname => 'circle_overabove', prorettype => 'bool',
8633 proargtypes => 'circle circle', prosrc => 'circle_overabove' },
8635 # support functions for GiST r-tree emulation
8636 { oid => '2578', descr => 'GiST support',
8637 proname => 'gist_box_consistent', prorettype => 'bool',
8638 proargtypes => 'internal box int2 oid internal',
8639 prosrc => 'gist_box_consistent' },
8640 { oid => '2581', descr => 'GiST support',
8641 proname => 'gist_box_penalty', prorettype => 'internal',
8642 proargtypes => 'internal internal internal', prosrc => 'gist_box_penalty' },
8643 { oid => '2582', descr => 'GiST support',
8644 proname => 'gist_box_picksplit', prorettype => 'internal',
8645 proargtypes => 'internal internal', prosrc => 'gist_box_picksplit' },
8646 { oid => '2583', descr => 'GiST support',
8647 proname => 'gist_box_union', prorettype => 'box',
8648 proargtypes => 'internal internal', prosrc => 'gist_box_union' },
8649 { oid => '2584', descr => 'GiST support',
8650 proname => 'gist_box_same', prorettype => 'internal',
8651 proargtypes => 'box box internal', prosrc => 'gist_box_same' },
8652 { oid => '3998', descr => 'GiST support',
8653 proname => 'gist_box_distance', prorettype => 'float8',
8654 proargtypes => 'internal box int2 oid internal',
8655 prosrc => 'gist_box_distance' },
8656 { oid => '2585', descr => 'GiST support',
8657 proname => 'gist_poly_consistent', prorettype => 'bool',
8658 proargtypes => 'internal polygon int2 oid internal',
8659 prosrc => 'gist_poly_consistent' },
8660 { oid => '2586', descr => 'GiST support',
8661 proname => 'gist_poly_compress', prorettype => 'internal',
8662 proargtypes => 'internal', prosrc => 'gist_poly_compress' },
8663 { oid => '2591', descr => 'GiST support',
8664 proname => 'gist_circle_consistent', prorettype => 'bool',
8665 proargtypes => 'internal circle int2 oid internal',
8666 prosrc => 'gist_circle_consistent' },
8667 { oid => '2592', descr => 'GiST support',
8668 proname => 'gist_circle_compress', prorettype => 'internal',
8669 proargtypes => 'internal', prosrc => 'gist_circle_compress' },
8670 { oid => '1030', descr => 'GiST support',
8671 proname => 'gist_point_compress', prorettype => 'internal',
8672 proargtypes => 'internal', prosrc => 'gist_point_compress' },
8673 { oid => '3282', descr => 'GiST support',
8674 proname => 'gist_point_fetch', prorettype => 'internal',
8675 proargtypes => 'internal', prosrc => 'gist_point_fetch' },
8676 { oid => '2179', descr => 'GiST support',
8677 proname => 'gist_point_consistent', prorettype => 'bool',
8678 proargtypes => 'internal point int2 oid internal',
8679 prosrc => 'gist_point_consistent' },
8680 { oid => '3064', descr => 'GiST support',
8681 proname => 'gist_point_distance', prorettype => 'float8',
8682 proargtypes => 'internal point int2 oid internal',
8683 prosrc => 'gist_point_distance' },
8684 { oid => '3280', descr => 'GiST support',
8685 proname => 'gist_circle_distance', prorettype => 'float8',
8686 proargtypes => 'internal circle int2 oid internal',
8687 prosrc => 'gist_circle_distance' },
8688 { oid => '3288', descr => 'GiST support',
8689 proname => 'gist_poly_distance', prorettype => 'float8',
8690 proargtypes => 'internal polygon int2 oid internal',
8691 prosrc => 'gist_poly_distance' },
8692 { oid => '3435', descr => 'sort support',
8693 proname => 'gist_point_sortsupport', prorettype => 'void',
8694 proargtypes => 'internal', prosrc => 'gist_point_sortsupport' },
8696 # GIN array support
8697 { oid => '2743', descr => 'GIN array support',
8698 proname => 'ginarrayextract', prorettype => 'internal',
8699 proargtypes => 'anyarray internal internal', prosrc => 'ginarrayextract' },
8700 { oid => '2774', descr => 'GIN array support',
8701 proname => 'ginqueryarrayextract', prorettype => 'internal',
8702 proargtypes => 'anyarray internal int2 internal internal internal internal',
8703 prosrc => 'ginqueryarrayextract' },
8704 { oid => '2744', descr => 'GIN array support',
8705 proname => 'ginarrayconsistent', prorettype => 'bool',
8706 proargtypes => 'internal int2 anyarray int4 internal internal internal internal',
8707 prosrc => 'ginarrayconsistent' },
8708 { oid => '3920', descr => 'GIN array support',
8709 proname => 'ginarraytriconsistent', prorettype => 'char',
8710 proargtypes => 'internal int2 anyarray int4 internal internal internal',
8711 prosrc => 'ginarraytriconsistent' },
8712 { oid => '3076', descr => 'GIN array support (obsolete)',
8713 proname => 'ginarrayextract', prorettype => 'internal',
8714 proargtypes => 'anyarray internal', prosrc => 'ginarrayextract_2args' },
8716 # overlap/contains/contained
8717 { oid => '2747',
8718 proname => 'arrayoverlap', prorettype => 'bool',
8719 proargtypes => 'anyarray anyarray', prosrc => 'arrayoverlap' },
8720 { oid => '2748',
8721 proname => 'arraycontains', prorettype => 'bool',
8722 proargtypes => 'anyarray anyarray', prosrc => 'arraycontains' },
8723 { oid => '2749',
8724 proname => 'arraycontained', prorettype => 'bool',
8725 proargtypes => 'anyarray anyarray', prosrc => 'arraycontained' },
8727 # BRIN minmax
8728 { oid => '3383', descr => 'BRIN minmax support',
8729 proname => 'brin_minmax_opcinfo', prorettype => 'internal',
8730 proargtypes => 'internal', prosrc => 'brin_minmax_opcinfo' },
8731 { oid => '3384', descr => 'BRIN minmax support',
8732 proname => 'brin_minmax_add_value', prorettype => 'bool',
8733 proargtypes => 'internal internal internal internal',
8734 prosrc => 'brin_minmax_add_value' },
8735 { oid => '3385', descr => 'BRIN minmax support',
8736 proname => 'brin_minmax_consistent', prorettype => 'bool',
8737 proargtypes => 'internal internal internal',
8738 prosrc => 'brin_minmax_consistent' },
8739 { oid => '3386', descr => 'BRIN minmax support',
8740 proname => 'brin_minmax_union', prorettype => 'bool',
8741 proargtypes => 'internal internal internal', prosrc => 'brin_minmax_union' },
8743 # BRIN minmax multi
8744 { oid => '4616', descr => 'BRIN multi minmax support',
8745 proname => 'brin_minmax_multi_opcinfo', prorettype => 'internal',
8746 proargtypes => 'internal', prosrc => 'brin_minmax_multi_opcinfo' },
8747 { oid => '4617', descr => 'BRIN multi minmax support',
8748 proname => 'brin_minmax_multi_add_value', prorettype => 'bool',
8749 proargtypes => 'internal internal internal internal',
8750 prosrc => 'brin_minmax_multi_add_value' },
8751 { oid => '4618', descr => 'BRIN multi minmax support',
8752 proname => 'brin_minmax_multi_consistent', prorettype => 'bool',
8753 proargtypes => 'internal internal internal int4',
8754 prosrc => 'brin_minmax_multi_consistent' },
8755 { oid => '4619', descr => 'BRIN multi minmax support',
8756 proname => 'brin_minmax_multi_union', prorettype => 'bool',
8757 proargtypes => 'internal internal internal',
8758 prosrc => 'brin_minmax_multi_union' },
8759 { oid => '4620', descr => 'BRIN multi minmax support',
8760 proname => 'brin_minmax_multi_options', proisstrict => 'f',
8761 prorettype => 'void', proargtypes => 'internal',
8762 prosrc => 'brin_minmax_multi_options' },
8764 { oid => '4621', descr => 'BRIN multi minmax int2 distance',
8765 proname => 'brin_minmax_multi_distance_int2', prorettype => 'float8',
8766 proargtypes => 'internal internal',
8767 prosrc => 'brin_minmax_multi_distance_int2' },
8768 { oid => '4622', descr => 'BRIN multi minmax int4 distance',
8769 proname => 'brin_minmax_multi_distance_int4', prorettype => 'float8',
8770 proargtypes => 'internal internal',
8771 prosrc => 'brin_minmax_multi_distance_int4' },
8772 { oid => '4623', descr => 'BRIN multi minmax int8 distance',
8773 proname => 'brin_minmax_multi_distance_int8', prorettype => 'float8',
8774 proargtypes => 'internal internal',
8775 prosrc => 'brin_minmax_multi_distance_int8' },
8776 { oid => '4624', descr => 'BRIN multi minmax float4 distance',
8777 proname => 'brin_minmax_multi_distance_float4', prorettype => 'float8',
8778 proargtypes => 'internal internal',
8779 prosrc => 'brin_minmax_multi_distance_float4' },
8780 { oid => '4625', descr => 'BRIN multi minmax float8 distance',
8781 proname => 'brin_minmax_multi_distance_float8', prorettype => 'float8',
8782 proargtypes => 'internal internal',
8783 prosrc => 'brin_minmax_multi_distance_float8' },
8784 { oid => '4626', descr => 'BRIN multi minmax numeric distance',
8785 proname => 'brin_minmax_multi_distance_numeric', prorettype => 'float8',
8786 proargtypes => 'internal internal',
8787 prosrc => 'brin_minmax_multi_distance_numeric' },
8788 { oid => '4627', descr => 'BRIN multi minmax tid distance',
8789 proname => 'brin_minmax_multi_distance_tid', prorettype => 'float8',
8790 proargtypes => 'internal internal',
8791 prosrc => 'brin_minmax_multi_distance_tid' },
8792 { oid => '4628', descr => 'BRIN multi minmax uuid distance',
8793 proname => 'brin_minmax_multi_distance_uuid', prorettype => 'float8',
8794 proargtypes => 'internal internal',
8795 prosrc => 'brin_minmax_multi_distance_uuid' },
8796 { oid => '4629', descr => 'BRIN multi minmax date distance',
8797 proname => 'brin_minmax_multi_distance_date', prorettype => 'float8',
8798 proargtypes => 'internal internal',
8799 prosrc => 'brin_minmax_multi_distance_date' },
8800 { oid => '4630', descr => 'BRIN multi minmax time distance',
8801 proname => 'brin_minmax_multi_distance_time', prorettype => 'float8',
8802 proargtypes => 'internal internal',
8803 prosrc => 'brin_minmax_multi_distance_time' },
8804 { oid => '4631', descr => 'BRIN multi minmax interval distance',
8805 proname => 'brin_minmax_multi_distance_interval', prorettype => 'float8',
8806 proargtypes => 'internal internal',
8807 prosrc => 'brin_minmax_multi_distance_interval' },
8808 { oid => '4632', descr => 'BRIN multi minmax timetz distance',
8809 proname => 'brin_minmax_multi_distance_timetz', prorettype => 'float8',
8810 proargtypes => 'internal internal',
8811 prosrc => 'brin_minmax_multi_distance_timetz' },
8812 { oid => '4633', descr => 'BRIN multi minmax pg_lsn distance',
8813 proname => 'brin_minmax_multi_distance_pg_lsn', prorettype => 'float8',
8814 proargtypes => 'internal internal',
8815 prosrc => 'brin_minmax_multi_distance_pg_lsn' },
8816 { oid => '4634', descr => 'BRIN multi minmax macaddr distance',
8817 proname => 'brin_minmax_multi_distance_macaddr', prorettype => 'float8',
8818 proargtypes => 'internal internal',
8819 prosrc => 'brin_minmax_multi_distance_macaddr' },
8820 { oid => '4635', descr => 'BRIN multi minmax macaddr8 distance',
8821 proname => 'brin_minmax_multi_distance_macaddr8', prorettype => 'float8',
8822 proargtypes => 'internal internal',
8823 prosrc => 'brin_minmax_multi_distance_macaddr8' },
8824 { oid => '4636', descr => 'BRIN multi minmax inet distance',
8825 proname => 'brin_minmax_multi_distance_inet', prorettype => 'float8',
8826 proargtypes => 'internal internal',
8827 prosrc => 'brin_minmax_multi_distance_inet' },
8828 { oid => '4637', descr => 'BRIN multi minmax timestamp distance',
8829 proname => 'brin_minmax_multi_distance_timestamp', prorettype => 'float8',
8830 proargtypes => 'internal internal',
8831 prosrc => 'brin_minmax_multi_distance_timestamp' },
8833 # BRIN inclusion
8834 { oid => '4105', descr => 'BRIN inclusion support',
8835 proname => 'brin_inclusion_opcinfo', prorettype => 'internal',
8836 proargtypes => 'internal', prosrc => 'brin_inclusion_opcinfo' },
8837 { oid => '4106', descr => 'BRIN inclusion support',
8838 proname => 'brin_inclusion_add_value', prorettype => 'bool',
8839 proargtypes => 'internal internal internal internal',
8840 prosrc => 'brin_inclusion_add_value' },
8841 { oid => '4107', descr => 'BRIN inclusion support',
8842 proname => 'brin_inclusion_consistent', prorettype => 'bool',
8843 proargtypes => 'internal internal internal',
8844 prosrc => 'brin_inclusion_consistent' },
8845 { oid => '4108', descr => 'BRIN inclusion support',
8846 proname => 'brin_inclusion_union', prorettype => 'bool',
8847 proargtypes => 'internal internal internal',
8848 prosrc => 'brin_inclusion_union' },
8850 # BRIN bloom
8851 { oid => '4591', descr => 'BRIN bloom support',
8852 proname => 'brin_bloom_opcinfo', prorettype => 'internal',
8853 proargtypes => 'internal', prosrc => 'brin_bloom_opcinfo' },
8854 { oid => '4592', descr => 'BRIN bloom support',
8855 proname => 'brin_bloom_add_value', prorettype => 'bool',
8856 proargtypes => 'internal internal internal internal',
8857 prosrc => 'brin_bloom_add_value' },
8858 { oid => '4593', descr => 'BRIN bloom support',
8859 proname => 'brin_bloom_consistent', prorettype => 'bool',
8860 proargtypes => 'internal internal internal int4',
8861 prosrc => 'brin_bloom_consistent' },
8862 { oid => '4594', descr => 'BRIN bloom support',
8863 proname => 'brin_bloom_union', prorettype => 'bool',
8864 proargtypes => 'internal internal internal', prosrc => 'brin_bloom_union' },
8865 { oid => '4595', descr => 'BRIN bloom support',
8866 proname => 'brin_bloom_options', proisstrict => 'f', prorettype => 'void',
8867 proargtypes => 'internal', prosrc => 'brin_bloom_options' },
8869 # userlock replacements
8870 { oid => '2880', descr => 'obtain exclusive advisory lock',
8871 proname => 'pg_advisory_lock', provolatile => 'v', proparallel => 'r',
8872 prorettype => 'void', proargtypes => 'int8',
8873 prosrc => 'pg_advisory_lock_int8' },
8874 { oid => '3089', descr => 'obtain exclusive advisory lock',
8875 proname => 'pg_advisory_xact_lock', provolatile => 'v', proparallel => 'r',
8876 prorettype => 'void', proargtypes => 'int8',
8877 prosrc => 'pg_advisory_xact_lock_int8' },
8878 { oid => '2881', descr => 'obtain shared advisory lock',
8879 proname => 'pg_advisory_lock_shared', provolatile => 'v', proparallel => 'r',
8880 prorettype => 'void', proargtypes => 'int8',
8881 prosrc => 'pg_advisory_lock_shared_int8' },
8882 { oid => '3090', descr => 'obtain shared advisory lock',
8883 proname => 'pg_advisory_xact_lock_shared', provolatile => 'v',
8884 proparallel => 'r', prorettype => 'void', proargtypes => 'int8',
8885 prosrc => 'pg_advisory_xact_lock_shared_int8' },
8886 { oid => '2882', descr => 'obtain exclusive advisory lock if available',
8887 proname => 'pg_try_advisory_lock', provolatile => 'v', proparallel => 'r',
8888 prorettype => 'bool', proargtypes => 'int8',
8889 prosrc => 'pg_try_advisory_lock_int8' },
8890 { oid => '3091', descr => 'obtain exclusive advisory lock if available',
8891 proname => 'pg_try_advisory_xact_lock', provolatile => 'v',
8892 proparallel => 'r', prorettype => 'bool', proargtypes => 'int8',
8893 prosrc => 'pg_try_advisory_xact_lock_int8' },
8894 { oid => '2883', descr => 'obtain shared advisory lock if available',
8895 proname => 'pg_try_advisory_lock_shared', provolatile => 'v',
8896 proparallel => 'r', prorettype => 'bool', proargtypes => 'int8',
8897 prosrc => 'pg_try_advisory_lock_shared_int8' },
8898 { oid => '3092', descr => 'obtain shared advisory lock if available',
8899 proname => 'pg_try_advisory_xact_lock_shared', provolatile => 'v',
8900 proparallel => 'r', prorettype => 'bool', proargtypes => 'int8',
8901 prosrc => 'pg_try_advisory_xact_lock_shared_int8' },
8902 { oid => '2884', descr => 'release exclusive advisory lock',
8903 proname => 'pg_advisory_unlock', provolatile => 'v', proparallel => 'r',
8904 prorettype => 'bool', proargtypes => 'int8',
8905 prosrc => 'pg_advisory_unlock_int8' },
8906 { oid => '2885', descr => 'release shared advisory lock',
8907 proname => 'pg_advisory_unlock_shared', provolatile => 'v',
8908 proparallel => 'r', prorettype => 'bool', proargtypes => 'int8',
8909 prosrc => 'pg_advisory_unlock_shared_int8' },
8910 { oid => '2886', descr => 'obtain exclusive advisory lock',
8911 proname => 'pg_advisory_lock', provolatile => 'v', proparallel => 'r',
8912 prorettype => 'void', proargtypes => 'int4 int4',
8913 prosrc => 'pg_advisory_lock_int4' },
8914 { oid => '3093', descr => 'obtain exclusive advisory lock',
8915 proname => 'pg_advisory_xact_lock', provolatile => 'v', proparallel => 'r',
8916 prorettype => 'void', proargtypes => 'int4 int4',
8917 prosrc => 'pg_advisory_xact_lock_int4' },
8918 { oid => '2887', descr => 'obtain shared advisory lock',
8919 proname => 'pg_advisory_lock_shared', provolatile => 'v', proparallel => 'r',
8920 prorettype => 'void', proargtypes => 'int4 int4',
8921 prosrc => 'pg_advisory_lock_shared_int4' },
8922 { oid => '3094', descr => 'obtain shared advisory lock',
8923 proname => 'pg_advisory_xact_lock_shared', provolatile => 'v',
8924 proparallel => 'r', prorettype => 'void', proargtypes => 'int4 int4',
8925 prosrc => 'pg_advisory_xact_lock_shared_int4' },
8926 { oid => '2888', descr => 'obtain exclusive advisory lock if available',
8927 proname => 'pg_try_advisory_lock', provolatile => 'v', proparallel => 'r',
8928 prorettype => 'bool', proargtypes => 'int4 int4',
8929 prosrc => 'pg_try_advisory_lock_int4' },
8930 { oid => '3095', descr => 'obtain exclusive advisory lock if available',
8931 proname => 'pg_try_advisory_xact_lock', provolatile => 'v',
8932 proparallel => 'r', prorettype => 'bool', proargtypes => 'int4 int4',
8933 prosrc => 'pg_try_advisory_xact_lock_int4' },
8934 { oid => '2889', descr => 'obtain shared advisory lock if available',
8935 proname => 'pg_try_advisory_lock_shared', provolatile => 'v',
8936 proparallel => 'r', prorettype => 'bool', proargtypes => 'int4 int4',
8937 prosrc => 'pg_try_advisory_lock_shared_int4' },
8938 { oid => '3096', descr => 'obtain shared advisory lock if available',
8939 proname => 'pg_try_advisory_xact_lock_shared', provolatile => 'v',
8940 proparallel => 'r', prorettype => 'bool', proargtypes => 'int4 int4',
8941 prosrc => 'pg_try_advisory_xact_lock_shared_int4' },
8942 { oid => '2890', descr => 'release exclusive advisory lock',
8943 proname => 'pg_advisory_unlock', provolatile => 'v', proparallel => 'r',
8944 prorettype => 'bool', proargtypes => 'int4 int4',
8945 prosrc => 'pg_advisory_unlock_int4' },
8946 { oid => '2891', descr => 'release shared advisory lock',
8947 proname => 'pg_advisory_unlock_shared', provolatile => 'v',
8948 proparallel => 'r', prorettype => 'bool', proargtypes => 'int4 int4',
8949 prosrc => 'pg_advisory_unlock_shared_int4' },
8950 { oid => '2892', descr => 'release all advisory locks',
8951 proname => 'pg_advisory_unlock_all', provolatile => 'v', proparallel => 'r',
8952 prorettype => 'void', proargtypes => '', prosrc => 'pg_advisory_unlock_all' },
8954 # XML support
8955 { oid => '2893', descr => 'I/O',
8956 proname => 'xml_in', provolatile => 's', prorettype => 'xml',
8957 proargtypes => 'cstring', prosrc => 'xml_in' },
8958 { oid => '2894', descr => 'I/O',
8959 proname => 'xml_out', prorettype => 'cstring', proargtypes => 'xml',
8960 prosrc => 'xml_out' },
8961 { oid => '2895', descr => 'generate XML comment',
8962 proname => 'xmlcomment', prorettype => 'xml', proargtypes => 'text',
8963 prosrc => 'xmlcomment' },
8964 { oid => '2896',
8965 descr => 'perform a non-validating parse of a character string to produce an XML value',
8966 proname => 'xml', provolatile => 's', prorettype => 'xml',
8967 proargtypes => 'text', prosrc => 'texttoxml' },
8968 { oid => '2897', descr => 'validate an XML value',
8969 proname => 'xmlvalidate', prorettype => 'bool', proargtypes => 'xml text',
8970 prosrc => 'xmlvalidate' },
8971 { oid => '2898', descr => 'I/O',
8972 proname => 'xml_recv', provolatile => 's', prorettype => 'xml',
8973 proargtypes => 'internal', prosrc => 'xml_recv' },
8974 { oid => '2899', descr => 'I/O',
8975 proname => 'xml_send', provolatile => 's', prorettype => 'bytea',
8976 proargtypes => 'xml', prosrc => 'xml_send' },
8977 { oid => '2900', descr => 'aggregate transition function',
8978 proname => 'xmlconcat2', proisstrict => 'f', prorettype => 'xml',
8979 proargtypes => 'xml xml', prosrc => 'xmlconcat2' },
8980 { oid => '2901', descr => 'concatenate XML values',
8981 proname => 'xmlagg', prokind => 'a', proisstrict => 'f', prorettype => 'xml',
8982 proargtypes => 'xml', prosrc => 'aggregate_dummy' },
8983 { oid => '2922', descr => 'serialize an XML value to a character string',
8984 proname => 'text', prorettype => 'text', proargtypes => 'xml',
8985 prosrc => 'xmltotext' },
8986 { oid => '3813', descr => 'generate XML text node',
8987 proname => 'xmltext', prorettype => 'xml', proargtypes => 'text',
8988 prosrc => 'xmltext' },
8990 { oid => '2923', descr => 'map table contents to XML',
8991 proname => 'table_to_xml', procost => '100', provolatile => 's',
8992 proparallel => 'r', prorettype => 'xml',
8993 proargtypes => 'regclass bool bool text',
8994 proargnames => '{tbl,nulls,tableforest,targetns}', prosrc => 'table_to_xml' },
8995 { oid => '2924', descr => 'map query result to XML',
8996 proname => 'query_to_xml', procost => '100', provolatile => 'v',
8997 proparallel => 'u', prorettype => 'xml', proargtypes => 'text bool bool text',
8998 proargnames => '{query,nulls,tableforest,targetns}',
8999 prosrc => 'query_to_xml' },
9000 { oid => '2925', descr => 'map rows from cursor to XML',
9001 proname => 'cursor_to_xml', procost => '100', provolatile => 'v',
9002 proparallel => 'u', prorettype => 'xml',
9003 proargtypes => 'refcursor int4 bool bool text',
9004 proargnames => '{cursor,count,nulls,tableforest,targetns}',
9005 prosrc => 'cursor_to_xml' },
9006 { oid => '2926', descr => 'map table structure to XML Schema',
9007 proname => 'table_to_xmlschema', procost => '100', provolatile => 's',
9008 proparallel => 'r', prorettype => 'xml',
9009 proargtypes => 'regclass bool bool text',
9010 proargnames => '{tbl,nulls,tableforest,targetns}',
9011 prosrc => 'table_to_xmlschema' },
9012 { oid => '2927', descr => 'map query result structure to XML Schema',
9013 proname => 'query_to_xmlschema', procost => '100', provolatile => 'v',
9014 proparallel => 'u', prorettype => 'xml', proargtypes => 'text bool bool text',
9015 proargnames => '{query,nulls,tableforest,targetns}',
9016 prosrc => 'query_to_xmlschema' },
9017 { oid => '2928', descr => 'map cursor structure to XML Schema',
9018 proname => 'cursor_to_xmlschema', procost => '100', provolatile => 'v',
9019 proparallel => 'u', prorettype => 'xml',
9020 proargtypes => 'refcursor bool bool text',
9021 proargnames => '{cursor,nulls,tableforest,targetns}',
9022 prosrc => 'cursor_to_xmlschema' },
9023 { oid => '2929',
9024 descr => 'map table contents and structure to XML and XML Schema',
9025 proname => 'table_to_xml_and_xmlschema', procost => '100', provolatile => 's',
9026 proparallel => 'r', prorettype => 'xml',
9027 proargtypes => 'regclass bool bool text',
9028 proargnames => '{tbl,nulls,tableforest,targetns}',
9029 prosrc => 'table_to_xml_and_xmlschema' },
9030 { oid => '2930',
9031 descr => 'map query result and structure to XML and XML Schema',
9032 proname => 'query_to_xml_and_xmlschema', procost => '100', provolatile => 'v',
9033 proparallel => 'u', prorettype => 'xml', proargtypes => 'text bool bool text',
9034 proargnames => '{query,nulls,tableforest,targetns}',
9035 prosrc => 'query_to_xml_and_xmlschema' },
9037 { oid => '2933', descr => 'map schema contents to XML',
9038 proname => 'schema_to_xml', procost => '100', provolatile => 's',
9039 proparallel => 'r', prorettype => 'xml', proargtypes => 'name bool bool text',
9040 proargnames => '{schema,nulls,tableforest,targetns}',
9041 prosrc => 'schema_to_xml' },
9042 { oid => '2934', descr => 'map schema structure to XML Schema',
9043 proname => 'schema_to_xmlschema', procost => '100', provolatile => 's',
9044 proparallel => 'r', prorettype => 'xml', proargtypes => 'name bool bool text',
9045 proargnames => '{schema,nulls,tableforest,targetns}',
9046 prosrc => 'schema_to_xmlschema' },
9047 { oid => '2935',
9048 descr => 'map schema contents and structure to XML and XML Schema',
9049 proname => 'schema_to_xml_and_xmlschema', procost => '100',
9050 provolatile => 's', proparallel => 'r', prorettype => 'xml',
9051 proargtypes => 'name bool bool text',
9052 proargnames => '{schema,nulls,tableforest,targetns}',
9053 prosrc => 'schema_to_xml_and_xmlschema' },
9055 { oid => '2936', descr => 'map database contents to XML',
9056 proname => 'database_to_xml', procost => '100', provolatile => 's',
9057 proparallel => 'r', prorettype => 'xml', proargtypes => 'bool bool text',
9058 proargnames => '{nulls,tableforest,targetns}', prosrc => 'database_to_xml' },
9059 { oid => '2937', descr => 'map database structure to XML Schema',
9060 proname => 'database_to_xmlschema', procost => '100', provolatile => 's',
9061 proparallel => 'r', prorettype => 'xml', proargtypes => 'bool bool text',
9062 proargnames => '{nulls,tableforest,targetns}',
9063 prosrc => 'database_to_xmlschema' },
9064 { oid => '2938',
9065 descr => 'map database contents and structure to XML and XML Schema',
9066 proname => 'database_to_xml_and_xmlschema', procost => '100',
9067 provolatile => 's', proparallel => 'r', prorettype => 'xml',
9068 proargtypes => 'bool bool text',
9069 proargnames => '{nulls,tableforest,targetns}',
9070 prosrc => 'database_to_xml_and_xmlschema' },
9072 { oid => '2931',
9073 descr => 'evaluate XPath expression, with namespaces support',
9074 proname => 'xpath', prorettype => '_xml', proargtypes => 'text xml _text',
9075 prosrc => 'xpath' },
9076 { oid => '2932', descr => 'evaluate XPath expression',
9077 proname => 'xpath', prolang => 'sql', prorettype => '_xml',
9078 proargtypes => 'text xml', prosrc => 'see system_functions.sql' },
9080 { oid => '2614', descr => 'test XML value against XPath expression',
9081 proname => 'xmlexists', prorettype => 'bool', proargtypes => 'text xml',
9082 prosrc => 'xmlexists' },
9084 { oid => '3049',
9085 descr => 'test XML value against XPath expression, with namespace support',
9086 proname => 'xpath_exists', prorettype => 'bool',
9087 proargtypes => 'text xml _text', prosrc => 'xpath_exists' },
9088 { oid => '3050', descr => 'test XML value against XPath expression',
9089 proname => 'xpath_exists', prolang => 'sql', prorettype => 'bool',
9090 proargtypes => 'text xml', prosrc => 'see system_functions.sql' },
9091 { oid => '3051', descr => 'determine if a string is well formed XML',
9092 proname => 'xml_is_well_formed', provolatile => 's', prorettype => 'bool',
9093 proargtypes => 'text', prosrc => 'xml_is_well_formed' },
9094 { oid => '3052', descr => 'determine if a string is well formed XML document',
9095 proname => 'xml_is_well_formed_document', prorettype => 'bool',
9096 proargtypes => 'text', prosrc => 'xml_is_well_formed_document' },
9097 { oid => '3053', descr => 'determine if a string is well formed XML content',
9098 proname => 'xml_is_well_formed_content', prorettype => 'bool',
9099 proargtypes => 'text', prosrc => 'xml_is_well_formed_content' },
9101 # json
9102 { oid => '321', descr => 'I/O',
9103 proname => 'json_in', prorettype => 'json', proargtypes => 'cstring',
9104 prosrc => 'json_in' },
9105 { oid => '322', descr => 'I/O',
9106 proname => 'json_out', prorettype => 'cstring', proargtypes => 'json',
9107 prosrc => 'json_out' },
9108 { oid => '323', descr => 'I/O',
9109 proname => 'json_recv', prorettype => 'json', proargtypes => 'internal',
9110 prosrc => 'json_recv' },
9111 { oid => '324', descr => 'I/O',
9112 proname => 'json_send', prorettype => 'bytea', proargtypes => 'json',
9113 prosrc => 'json_send' },
9114 { oid => '3153', descr => 'map array to json',
9115 proname => 'array_to_json', provolatile => 's', prorettype => 'json',
9116 proargtypes => 'anyarray', prosrc => 'array_to_json' },
9117 { oid => '3154', descr => 'map array to json with optional pretty printing',
9118 proname => 'array_to_json', provolatile => 's', prorettype => 'json',
9119 proargtypes => 'anyarray bool', prosrc => 'array_to_json_pretty' },
9120 { oid => '3155', descr => 'map row to json',
9121 proname => 'row_to_json', provolatile => 's', prorettype => 'json',
9122 proargtypes => 'record', prosrc => 'row_to_json' },
9123 { oid => '3156', descr => 'map row to json with optional pretty printing',
9124 proname => 'row_to_json', provolatile => 's', prorettype => 'json',
9125 proargtypes => 'record bool', prosrc => 'row_to_json_pretty' },
9126 { oid => '3173', descr => 'json aggregate transition function',
9127 proname => 'json_agg_transfn', proisstrict => 'f', provolatile => 's',
9128 prorettype => 'internal', proargtypes => 'internal anyelement',
9129 prosrc => 'json_agg_transfn' },
9130 { oid => '6275', descr => 'json aggregate transition function',
9131 proname => 'json_agg_strict_transfn', proisstrict => 'f', provolatile => 's',
9132 prorettype => 'internal', proargtypes => 'internal anyelement',
9133 prosrc => 'json_agg_strict_transfn' },
9134 { oid => '3174', descr => 'json aggregate final function',
9135 proname => 'json_agg_finalfn', proisstrict => 'f', prorettype => 'json',
9136 proargtypes => 'internal', prosrc => 'json_agg_finalfn' },
9137 { oid => '3175', descr => 'aggregate input into json',
9138 proname => 'json_agg', prokind => 'a', proisstrict => 'f', provolatile => 's',
9139 prorettype => 'json', proargtypes => 'anyelement',
9140 prosrc => 'aggregate_dummy' },
9141 { oid => '6276', descr => 'aggregate input into json',
9142 proname => 'json_agg_strict', prokind => 'a', proisstrict => 'f',
9143 provolatile => 's', prorettype => 'json', proargtypes => 'anyelement',
9144 prosrc => 'aggregate_dummy' },
9145 { oid => '3180', descr => 'json object aggregate transition function',
9146 proname => 'json_object_agg_transfn', proisstrict => 'f', provolatile => 's',
9147 prorettype => 'internal', proargtypes => 'internal any any',
9148 prosrc => 'json_object_agg_transfn' },
9149 { oid => '6277', descr => 'json object aggregate transition function',
9150 proname => 'json_object_agg_strict_transfn', proisstrict => 'f',
9151 provolatile => 's', prorettype => 'internal',
9152 proargtypes => 'internal any any',
9153 prosrc => 'json_object_agg_strict_transfn' },
9154 { oid => '6278', descr => 'json object aggregate transition function',
9155 proname => 'json_object_agg_unique_transfn', proisstrict => 'f',
9156 provolatile => 's', prorettype => 'internal',
9157 proargtypes => 'internal any any',
9158 prosrc => 'json_object_agg_unique_transfn' },
9159 { oid => '6279', descr => 'json object aggregate transition function',
9160 proname => 'json_object_agg_unique_strict_transfn', proisstrict => 'f',
9161 provolatile => 's', prorettype => 'internal',
9162 proargtypes => 'internal any any',
9163 prosrc => 'json_object_agg_unique_strict_transfn' },
9164 { oid => '3196', descr => 'json object aggregate final function',
9165 proname => 'json_object_agg_finalfn', proisstrict => 'f',
9166 prorettype => 'json', proargtypes => 'internal',
9167 prosrc => 'json_object_agg_finalfn' },
9168 { oid => '3197', descr => 'aggregate input into a json object',
9169 proname => 'json_object_agg', prokind => 'a', proisstrict => 'f',
9170 provolatile => 's', prorettype => 'json', proargtypes => 'any any',
9171 proargnames => '{key,value}', prosrc => 'aggregate_dummy' },
9172 { oid => '6280', descr => 'aggregate non-NULL input into a json object',
9173 proname => 'json_object_agg_strict', prokind => 'a', proisstrict => 'f',
9174 provolatile => 's', prorettype => 'json', proargtypes => 'any any',
9175 proargnames => '{key,value}', prosrc => 'aggregate_dummy' },
9176 { oid => '6281',
9177 descr => 'aggregate input into a json object with unique keys',
9178 proname => 'json_object_agg_unique', prokind => 'a', proisstrict => 'f',
9179 provolatile => 's', prorettype => 'json', proargtypes => 'any any',
9180 proargnames => '{key,value}', prosrc => 'aggregate_dummy' },
9181 { oid => '6282',
9182 descr => 'aggregate non-NULL input into a json object with unique keys',
9183 proname => 'json_object_agg_unique_strict', prokind => 'a',
9184 proisstrict => 'f', provolatile => 's', prorettype => 'json',
9185 proargtypes => 'any any', proargnames => '{key,value}',
9186 prosrc => 'aggregate_dummy' },
9187 { oid => '3198', descr => 'build a json array from any inputs',
9188 proname => 'json_build_array', provariadic => 'any', proisstrict => 'f',
9189 provolatile => 's', prorettype => 'json', proargtypes => 'any',
9190 proallargtypes => '{any}', proargmodes => '{v}',
9191 prosrc => 'json_build_array' },
9192 { oid => '3199', descr => 'build an empty json array',
9193 proname => 'json_build_array', proisstrict => 'f', provolatile => 's',
9194 prorettype => 'json', proargtypes => '',
9195 prosrc => 'json_build_array_noargs' },
9196 { oid => '3200',
9197 descr => 'build a json object from pairwise key/value inputs',
9198 proname => 'json_build_object', provariadic => 'any', proisstrict => 'f',
9199 provolatile => 's', prorettype => 'json', proargtypes => 'any',
9200 proallargtypes => '{any}', proargmodes => '{v}',
9201 prosrc => 'json_build_object' },
9202 { oid => '3201', descr => 'build an empty json object',
9203 proname => 'json_build_object', proisstrict => 'f', provolatile => 's',
9204 prorettype => 'json', proargtypes => '',
9205 prosrc => 'json_build_object_noargs' },
9206 { oid => '3202', descr => 'map text array of key value pairs to json object',
9207 proname => 'json_object', prorettype => 'json', proargtypes => '_text',
9208 prosrc => 'json_object' },
9209 { oid => '3203', descr => 'map text arrays of keys and values to json object',
9210 proname => 'json_object', prorettype => 'json', proargtypes => '_text _text',
9211 prosrc => 'json_object_two_arg' },
9212 { oid => '3176', descr => 'map input to json',
9213 proname => 'to_json', provolatile => 's', prorettype => 'json',
9214 proargtypes => 'anyelement', prosrc => 'to_json' },
9215 { oid => '3261', descr => 'remove object fields with null values from json',
9216 proname => 'json_strip_nulls', prorettype => 'json', proargtypes => 'json',
9217 prosrc => 'json_strip_nulls' },
9219 { oid => '3947',
9220 proname => 'json_object_field', prorettype => 'json',
9221 proargtypes => 'json text', proargnames => '{from_json, field_name}',
9222 prosrc => 'json_object_field' },
9223 { oid => '3948',
9224 proname => 'json_object_field_text', prorettype => 'text',
9225 proargtypes => 'json text', proargnames => '{from_json, field_name}',
9226 prosrc => 'json_object_field_text' },
9227 { oid => '3949',
9228 proname => 'json_array_element', prorettype => 'json',
9229 proargtypes => 'json int4', proargnames => '{from_json, element_index}',
9230 prosrc => 'json_array_element' },
9231 { oid => '3950',
9232 proname => 'json_array_element_text', prorettype => 'text',
9233 proargtypes => 'json int4', proargnames => '{from_json, element_index}',
9234 prosrc => 'json_array_element_text' },
9235 { oid => '3951', descr => 'get value from json with path elements',
9236 proname => 'json_extract_path', provariadic => 'text', prorettype => 'json',
9237 proargtypes => 'json _text', proallargtypes => '{json,_text}',
9238 proargmodes => '{i,v}', proargnames => '{from_json,path_elems}',
9239 prosrc => 'json_extract_path' },
9240 { oid => '3953', descr => 'get value from json as text with path elements',
9241 proname => 'json_extract_path_text', provariadic => 'text',
9242 prorettype => 'text', proargtypes => 'json _text',
9243 proallargtypes => '{json,_text}', proargmodes => '{i,v}',
9244 proargnames => '{from_json,path_elems}', prosrc => 'json_extract_path_text' },
9245 { oid => '3955', descr => 'key value pairs of a json object',
9246 proname => 'json_array_elements', prorows => '100', proretset => 't',
9247 prorettype => 'json', proargtypes => 'json', proallargtypes => '{json,json}',
9248 proargmodes => '{i,o}', proargnames => '{from_json,value}',
9249 prosrc => 'json_array_elements' },
9250 { oid => '3969', descr => 'elements of json array',
9251 proname => 'json_array_elements_text', prorows => '100', proretset => 't',
9252 prorettype => 'text', proargtypes => 'json', proallargtypes => '{json,text}',
9253 proargmodes => '{i,o}', proargnames => '{from_json,value}',
9254 prosrc => 'json_array_elements_text' },
9255 { oid => '3956', descr => 'length of json array',
9256 proname => 'json_array_length', prorettype => 'int4', proargtypes => 'json',
9257 prosrc => 'json_array_length' },
9258 { oid => '3957', descr => 'get json object keys',
9259 proname => 'json_object_keys', prorows => '100', proretset => 't',
9260 prorettype => 'text', proargtypes => 'json', prosrc => 'json_object_keys' },
9261 { oid => '3958', descr => 'key value pairs of a json object',
9262 proname => 'json_each', prorows => '100', proretset => 't',
9263 prorettype => 'record', proargtypes => 'json',
9264 proallargtypes => '{json,text,json}', proargmodes => '{i,o,o}',
9265 proargnames => '{from_json,key,value}', prosrc => 'json_each' },
9266 { oid => '3959', descr => 'key value pairs of a json object',
9267 proname => 'json_each_text', prorows => '100', proretset => 't',
9268 prorettype => 'record', proargtypes => 'json',
9269 proallargtypes => '{json,text,text}', proargmodes => '{i,o,o}',
9270 proargnames => '{from_json,key,value}', prosrc => 'json_each_text' },
9271 { oid => '3960', descr => 'get record fields from a json object',
9272 proname => 'json_populate_record', proisstrict => 'f', provolatile => 's',
9273 prorettype => 'anyelement', proargtypes => 'anyelement json bool',
9274 prosrc => 'json_populate_record' },
9275 { oid => '3961',
9276 descr => 'get set of records with fields from a json array of objects',
9277 proname => 'json_populate_recordset', prorows => '100', proisstrict => 'f',
9278 proretset => 't', provolatile => 's', prorettype => 'anyelement',
9279 proargtypes => 'anyelement json bool', prosrc => 'json_populate_recordset' },
9280 { oid => '3204', descr => 'get record fields from a json object',
9281 proname => 'json_to_record', provolatile => 's', prorettype => 'record',
9282 proargtypes => 'json', prosrc => 'json_to_record' },
9283 { oid => '3205',
9284 descr => 'get set of records with fields from a json array of objects',
9285 proname => 'json_to_recordset', prorows => '100', proisstrict => 'f',
9286 proretset => 't', provolatile => 's', prorettype => 'record',
9287 proargtypes => 'json', prosrc => 'json_to_recordset' },
9288 { oid => '3968', descr => 'get the type of a json value',
9289 proname => 'json_typeof', prorettype => 'text', proargtypes => 'json',
9290 prosrc => 'json_typeof' },
9292 # uuid
9293 { oid => '2952', descr => 'I/O',
9294 proname => 'uuid_in', prorettype => 'uuid', proargtypes => 'cstring',
9295 prosrc => 'uuid_in' },
9296 { oid => '2953', descr => 'I/O',
9297 proname => 'uuid_out', prorettype => 'cstring', proargtypes => 'uuid',
9298 prosrc => 'uuid_out' },
9299 { oid => '2954',
9300 proname => 'uuid_lt', proleakproof => 't', prorettype => 'bool',
9301 proargtypes => 'uuid uuid', prosrc => 'uuid_lt' },
9302 { oid => '2955',
9303 proname => 'uuid_le', proleakproof => 't', prorettype => 'bool',
9304 proargtypes => 'uuid uuid', prosrc => 'uuid_le' },
9305 { oid => '2956',
9306 proname => 'uuid_eq', proleakproof => 't', prorettype => 'bool',
9307 proargtypes => 'uuid uuid', prosrc => 'uuid_eq' },
9308 { oid => '2957',
9309 proname => 'uuid_ge', proleakproof => 't', prorettype => 'bool',
9310 proargtypes => 'uuid uuid', prosrc => 'uuid_ge' },
9311 { oid => '2958',
9312 proname => 'uuid_gt', proleakproof => 't', prorettype => 'bool',
9313 proargtypes => 'uuid uuid', prosrc => 'uuid_gt' },
9314 { oid => '2959',
9315 proname => 'uuid_ne', proleakproof => 't', prorettype => 'bool',
9316 proargtypes => 'uuid uuid', prosrc => 'uuid_ne' },
9317 { oid => '2960', descr => 'less-equal-greater',
9318 proname => 'uuid_cmp', proleakproof => 't', prorettype => 'int4',
9319 proargtypes => 'uuid uuid', prosrc => 'uuid_cmp' },
9320 { oid => '3300', descr => 'sort support',
9321 proname => 'uuid_sortsupport', prorettype => 'void',
9322 proargtypes => 'internal', prosrc => 'uuid_sortsupport' },
9323 { oid => '2961', descr => 'I/O',
9324 proname => 'uuid_recv', prorettype => 'uuid', proargtypes => 'internal',
9325 prosrc => 'uuid_recv' },
9326 { oid => '2962', descr => 'I/O',
9327 proname => 'uuid_send', prorettype => 'bytea', proargtypes => 'uuid',
9328 prosrc => 'uuid_send' },
9329 { oid => '2963', descr => 'hash',
9330 proname => 'uuid_hash', prorettype => 'int4', proargtypes => 'uuid',
9331 prosrc => 'uuid_hash' },
9332 { oid => '3412', descr => 'hash',
9333 proname => 'uuid_hash_extended', prorettype => 'int8',
9334 proargtypes => 'uuid int8', prosrc => 'uuid_hash_extended' },
9335 { oid => '3432', descr => 'generate random UUID',
9336 proname => 'gen_random_uuid', proleakproof => 't', provolatile => 'v',
9337 prorettype => 'uuid', proargtypes => '', prosrc => 'gen_random_uuid' },
9338 { oid => '6342', descr => 'extract timestamp from UUID',
9339 proname => 'uuid_extract_timestamp', proleakproof => 't',
9340 prorettype => 'timestamptz', proargtypes => 'uuid',
9341 prosrc => 'uuid_extract_timestamp' },
9342 { oid => '6343', descr => 'extract version from RFC 4122 UUID',
9343 proname => 'uuid_extract_version', proleakproof => 't', prorettype => 'int2',
9344 proargtypes => 'uuid', prosrc => 'uuid_extract_version' },
9346 # pg_lsn
9347 { oid => '3229', descr => 'I/O',
9348 proname => 'pg_lsn_in', prorettype => 'pg_lsn', proargtypes => 'cstring',
9349 prosrc => 'pg_lsn_in' },
9350 { oid => '3230', descr => 'I/O',
9351 proname => 'pg_lsn_out', prorettype => 'cstring', proargtypes => 'pg_lsn',
9352 prosrc => 'pg_lsn_out' },
9353 { oid => '3231',
9354 proname => 'pg_lsn_lt', proleakproof => 't', prorettype => 'bool',
9355 proargtypes => 'pg_lsn pg_lsn', prosrc => 'pg_lsn_lt' },
9356 { oid => '3232',
9357 proname => 'pg_lsn_le', proleakproof => 't', prorettype => 'bool',
9358 proargtypes => 'pg_lsn pg_lsn', prosrc => 'pg_lsn_le' },
9359 { oid => '3233',
9360 proname => 'pg_lsn_eq', proleakproof => 't', prorettype => 'bool',
9361 proargtypes => 'pg_lsn pg_lsn', prosrc => 'pg_lsn_eq' },
9362 { oid => '3234',
9363 proname => 'pg_lsn_ge', proleakproof => 't', prorettype => 'bool',
9364 proargtypes => 'pg_lsn pg_lsn', prosrc => 'pg_lsn_ge' },
9365 { oid => '3235',
9366 proname => 'pg_lsn_gt', proleakproof => 't', prorettype => 'bool',
9367 proargtypes => 'pg_lsn pg_lsn', prosrc => 'pg_lsn_gt' },
9368 { oid => '3236',
9369 proname => 'pg_lsn_ne', proleakproof => 't', prorettype => 'bool',
9370 proargtypes => 'pg_lsn pg_lsn', prosrc => 'pg_lsn_ne' },
9371 { oid => '3237',
9372 proname => 'pg_lsn_mi', prorettype => 'numeric',
9373 proargtypes => 'pg_lsn pg_lsn', prosrc => 'pg_lsn_mi' },
9374 { oid => '3238', descr => 'I/O',
9375 proname => 'pg_lsn_recv', prorettype => 'pg_lsn', proargtypes => 'internal',
9376 prosrc => 'pg_lsn_recv' },
9377 { oid => '3239', descr => 'I/O',
9378 proname => 'pg_lsn_send', prorettype => 'bytea', proargtypes => 'pg_lsn',
9379 prosrc => 'pg_lsn_send' },
9380 { oid => '3251', descr => 'less-equal-greater',
9381 proname => 'pg_lsn_cmp', proleakproof => 't', prorettype => 'int4',
9382 proargtypes => 'pg_lsn pg_lsn', prosrc => 'pg_lsn_cmp' },
9383 { oid => '3252', descr => 'hash',
9384 proname => 'pg_lsn_hash', prorettype => 'int4', proargtypes => 'pg_lsn',
9385 prosrc => 'pg_lsn_hash' },
9386 { oid => '3413', descr => 'hash',
9387 proname => 'pg_lsn_hash_extended', prorettype => 'int8',
9388 proargtypes => 'pg_lsn int8', prosrc => 'pg_lsn_hash_extended' },
9389 { oid => '4187', descr => 'larger of two',
9390 proname => 'pg_lsn_larger', prorettype => 'pg_lsn',
9391 proargtypes => 'pg_lsn pg_lsn', prosrc => 'pg_lsn_larger' },
9392 { oid => '4188', descr => 'smaller of two',
9393 proname => 'pg_lsn_smaller', prorettype => 'pg_lsn',
9394 proargtypes => 'pg_lsn pg_lsn', prosrc => 'pg_lsn_smaller' },
9395 { oid => '5022',
9396 proname => 'pg_lsn_pli', prorettype => 'pg_lsn',
9397 proargtypes => 'pg_lsn numeric', prosrc => 'pg_lsn_pli' },
9398 { oid => '5023',
9399 proname => 'numeric_pl_pg_lsn', prolang => 'sql', prorettype => 'pg_lsn',
9400 proargtypes => 'numeric pg_lsn', prosrc => 'see system_functions.sql' },
9401 { oid => '5024',
9402 proname => 'pg_lsn_mii', prorettype => 'pg_lsn',
9403 proargtypes => 'pg_lsn numeric', prosrc => 'pg_lsn_mii' },
9405 # enum related procs
9406 { oid => '3504', descr => 'I/O',
9407 proname => 'anyenum_in', prorettype => 'anyenum', proargtypes => 'cstring',
9408 prosrc => 'anyenum_in' },
9409 { oid => '3505', descr => 'I/O',
9410 proname => 'anyenum_out', provolatile => 's', prorettype => 'cstring',
9411 proargtypes => 'anyenum', prosrc => 'anyenum_out' },
9412 { oid => '3506', descr => 'I/O',
9413 proname => 'enum_in', provolatile => 's', prorettype => 'anyenum',
9414 proargtypes => 'cstring oid', prosrc => 'enum_in' },
9415 { oid => '3507', descr => 'I/O',
9416 proname => 'enum_out', provolatile => 's', prorettype => 'cstring',
9417 proargtypes => 'anyenum', prosrc => 'enum_out' },
9418 { oid => '3508',
9419 proname => 'enum_eq', prorettype => 'bool', proargtypes => 'anyenum anyenum',
9420 prosrc => 'enum_eq' },
9421 { oid => '3509',
9422 proname => 'enum_ne', prorettype => 'bool', proargtypes => 'anyenum anyenum',
9423 prosrc => 'enum_ne' },
9424 { oid => '3510',
9425 proname => 'enum_lt', prorettype => 'bool', proargtypes => 'anyenum anyenum',
9426 prosrc => 'enum_lt' },
9427 { oid => '3511',
9428 proname => 'enum_gt', prorettype => 'bool', proargtypes => 'anyenum anyenum',
9429 prosrc => 'enum_gt' },
9430 { oid => '3512',
9431 proname => 'enum_le', prorettype => 'bool', proargtypes => 'anyenum anyenum',
9432 prosrc => 'enum_le' },
9433 { oid => '3513',
9434 proname => 'enum_ge', prorettype => 'bool', proargtypes => 'anyenum anyenum',
9435 prosrc => 'enum_ge' },
9436 { oid => '3514', descr => 'less-equal-greater',
9437 proname => 'enum_cmp', prorettype => 'int4', proargtypes => 'anyenum anyenum',
9438 prosrc => 'enum_cmp' },
9439 { oid => '3515', descr => 'hash',
9440 proname => 'hashenum', prorettype => 'int4', proargtypes => 'anyenum',
9441 prosrc => 'hashenum' },
9442 { oid => '3414', descr => 'hash',
9443 proname => 'hashenumextended', prorettype => 'int8',
9444 proargtypes => 'anyenum int8', prosrc => 'hashenumextended' },
9445 { oid => '3524', descr => 'smaller of two',
9446 proname => 'enum_smaller', prorettype => 'anyenum',
9447 proargtypes => 'anyenum anyenum', prosrc => 'enum_smaller' },
9448 { oid => '3525', descr => 'larger of two',
9449 proname => 'enum_larger', prorettype => 'anyenum',
9450 proargtypes => 'anyenum anyenum', prosrc => 'enum_larger' },
9451 { oid => '3526', descr => 'maximum value of all enum input values',
9452 proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'anyenum',
9453 proargtypes => 'anyenum', prosrc => 'aggregate_dummy' },
9454 { oid => '3527', descr => 'minimum value of all enum input values',
9455 proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'anyenum',
9456 proargtypes => 'anyenum', prosrc => 'aggregate_dummy' },
9457 { oid => '3528', descr => 'first value of the input enum type',
9458 proname => 'enum_first', proisstrict => 'f', provolatile => 's',
9459 prorettype => 'anyenum', proargtypes => 'anyenum', prosrc => 'enum_first' },
9460 { oid => '3529', descr => 'last value of the input enum type',
9461 proname => 'enum_last', proisstrict => 'f', provolatile => 's',
9462 prorettype => 'anyenum', proargtypes => 'anyenum', prosrc => 'enum_last' },
9463 { oid => '3530',
9464 descr => 'range between the two given enum values, as an ordered array',
9465 proname => 'enum_range', proisstrict => 'f', provolatile => 's',
9466 prorettype => 'anyarray', proargtypes => 'anyenum anyenum',
9467 prosrc => 'enum_range_bounds' },
9468 { oid => '3531', descr => 'range of the given enum type, as an ordered array',
9469 proname => 'enum_range', proisstrict => 'f', provolatile => 's',
9470 prorettype => 'anyarray', proargtypes => 'anyenum',
9471 prosrc => 'enum_range_all' },
9472 { oid => '3532', descr => 'I/O',
9473 proname => 'enum_recv', provolatile => 's', prorettype => 'anyenum',
9474 proargtypes => 'internal oid', prosrc => 'enum_recv' },
9475 { oid => '3533', descr => 'I/O',
9476 proname => 'enum_send', provolatile => 's', prorettype => 'bytea',
9477 proargtypes => 'anyenum', prosrc => 'enum_send' },
9479 # text search stuff
9480 { oid => '3610', descr => 'I/O',
9481 proname => 'tsvectorin', prorettype => 'tsvector', proargtypes => 'cstring',
9482 prosrc => 'tsvectorin' },
9483 { oid => '3639', descr => 'I/O',
9484 proname => 'tsvectorrecv', prorettype => 'tsvector',
9485 proargtypes => 'internal', prosrc => 'tsvectorrecv' },
9486 { oid => '3611', descr => 'I/O',
9487 proname => 'tsvectorout', prorettype => 'cstring', proargtypes => 'tsvector',
9488 prosrc => 'tsvectorout' },
9489 { oid => '3638', descr => 'I/O',
9490 proname => 'tsvectorsend', prorettype => 'bytea', proargtypes => 'tsvector',
9491 prosrc => 'tsvectorsend' },
9492 { oid => '3612', descr => 'I/O',
9493 proname => 'tsqueryin', prorettype => 'tsquery', proargtypes => 'cstring',
9494 prosrc => 'tsqueryin' },
9495 { oid => '3641', descr => 'I/O',
9496 proname => 'tsqueryrecv', prorettype => 'tsquery', proargtypes => 'internal',
9497 prosrc => 'tsqueryrecv' },
9498 { oid => '3613', descr => 'I/O',
9499 proname => 'tsqueryout', prorettype => 'cstring', proargtypes => 'tsquery',
9500 prosrc => 'tsqueryout' },
9501 { oid => '3640', descr => 'I/O',
9502 proname => 'tsquerysend', prorettype => 'bytea', proargtypes => 'tsquery',
9503 prosrc => 'tsquerysend' },
9504 { oid => '3646', descr => 'I/O',
9505 proname => 'gtsvectorin', prorettype => 'gtsvector', proargtypes => 'cstring',
9506 prosrc => 'gtsvectorin' },
9507 { oid => '3647', descr => 'I/O',
9508 proname => 'gtsvectorout', prorettype => 'cstring',
9509 proargtypes => 'gtsvector', prosrc => 'gtsvectorout' },
9511 { oid => '3616',
9512 proname => 'tsvector_lt', prorettype => 'bool',
9513 proargtypes => 'tsvector tsvector', prosrc => 'tsvector_lt' },
9514 { oid => '3617',
9515 proname => 'tsvector_le', prorettype => 'bool',
9516 proargtypes => 'tsvector tsvector', prosrc => 'tsvector_le' },
9517 { oid => '3618',
9518 proname => 'tsvector_eq', prorettype => 'bool',
9519 proargtypes => 'tsvector tsvector', prosrc => 'tsvector_eq' },
9520 { oid => '3619',
9521 proname => 'tsvector_ne', prorettype => 'bool',
9522 proargtypes => 'tsvector tsvector', prosrc => 'tsvector_ne' },
9523 { oid => '3620',
9524 proname => 'tsvector_ge', prorettype => 'bool',
9525 proargtypes => 'tsvector tsvector', prosrc => 'tsvector_ge' },
9526 { oid => '3621',
9527 proname => 'tsvector_gt', prorettype => 'bool',
9528 proargtypes => 'tsvector tsvector', prosrc => 'tsvector_gt' },
9529 { oid => '3622', descr => 'less-equal-greater',
9530 proname => 'tsvector_cmp', prorettype => 'int4',
9531 proargtypes => 'tsvector tsvector', prosrc => 'tsvector_cmp' },
9533 { oid => '3711', descr => 'number of lexemes',
9534 proname => 'length', prorettype => 'int4', proargtypes => 'tsvector',
9535 prosrc => 'tsvector_length' },
9536 { oid => '3623', descr => 'strip position information',
9537 proname => 'strip', prorettype => 'tsvector', proargtypes => 'tsvector',
9538 prosrc => 'tsvector_strip' },
9539 { oid => '3624', descr => 'set given weight for whole tsvector',
9540 proname => 'setweight', prorettype => 'tsvector',
9541 proargtypes => 'tsvector char', prosrc => 'tsvector_setweight' },
9542 { oid => '3320', descr => 'set given weight for given lexemes',
9543 proname => 'setweight', prorettype => 'tsvector',
9544 proargtypes => 'tsvector char _text',
9545 prosrc => 'tsvector_setweight_by_filter' },
9546 { oid => '3625',
9547 proname => 'tsvector_concat', prorettype => 'tsvector',
9548 proargtypes => 'tsvector tsvector', prosrc => 'tsvector_concat' },
9549 { oid => '3321', descr => 'delete lexeme',
9550 proname => 'ts_delete', prorettype => 'tsvector',
9551 proargtypes => 'tsvector text', prosrc => 'tsvector_delete_str' },
9552 { oid => '3323', descr => 'delete given lexemes',
9553 proname => 'ts_delete', prorettype => 'tsvector',
9554 proargtypes => 'tsvector _text', prosrc => 'tsvector_delete_arr' },
9555 { oid => '3322', descr => 'expand tsvector to set of rows',
9556 proname => 'unnest', prorows => '10', proretset => 't',
9557 prorettype => 'record', proargtypes => 'tsvector',
9558 proallargtypes => '{tsvector,text,_int2,_text}', proargmodes => '{i,o,o,o}',
9559 proargnames => '{tsvector,lexeme,positions,weights}',
9560 prosrc => 'tsvector_unnest' },
9561 { oid => '3326', descr => 'convert tsvector to array of lexemes',
9562 proname => 'tsvector_to_array', prorettype => '_text',
9563 proargtypes => 'tsvector', prosrc => 'tsvector_to_array' },
9564 { oid => '3327', descr => 'build tsvector from array of lexemes',
9565 proname => 'array_to_tsvector', prorettype => 'tsvector',
9566 proargtypes => '_text', prosrc => 'array_to_tsvector' },
9567 { oid => '3319',
9568 descr => 'delete lexemes that do not have one of the given weights',
9569 proname => 'ts_filter', prorettype => 'tsvector',
9570 proargtypes => 'tsvector _char', prosrc => 'tsvector_filter' },
9572 { oid => '3634',
9573 proname => 'ts_match_vq', prorettype => 'bool',
9574 proargtypes => 'tsvector tsquery', prosrc => 'ts_match_vq' },
9575 { oid => '3635',
9576 proname => 'ts_match_qv', prorettype => 'bool',
9577 proargtypes => 'tsquery tsvector', prosrc => 'ts_match_qv' },
9578 { oid => '3760',
9579 proname => 'ts_match_tt', procost => '100', provolatile => 's',
9580 prorettype => 'bool', proargtypes => 'text text', prosrc => 'ts_match_tt' },
9581 { oid => '3761',
9582 proname => 'ts_match_tq', procost => '100', provolatile => 's',
9583 prorettype => 'bool', proargtypes => 'text tsquery',
9584 prosrc => 'ts_match_tq' },
9586 { oid => '3648', descr => 'GiST tsvector support',
9587 proname => 'gtsvector_compress', prorettype => 'internal',
9588 proargtypes => 'internal', prosrc => 'gtsvector_compress' },
9589 { oid => '3649', descr => 'GiST tsvector support',
9590 proname => 'gtsvector_decompress', prorettype => 'internal',
9591 proargtypes => 'internal', prosrc => 'gtsvector_decompress' },
9592 { oid => '3650', descr => 'GiST tsvector support',
9593 proname => 'gtsvector_picksplit', prorettype => 'internal',
9594 proargtypes => 'internal internal', prosrc => 'gtsvector_picksplit' },
9595 { oid => '3651', descr => 'GiST tsvector support',
9596 proname => 'gtsvector_union', prorettype => 'gtsvector',
9597 proargtypes => 'internal internal', prosrc => 'gtsvector_union' },
9598 { oid => '3652', descr => 'GiST tsvector support',
9599 proname => 'gtsvector_same', prorettype => 'internal',
9600 proargtypes => 'gtsvector gtsvector internal', prosrc => 'gtsvector_same' },
9601 { oid => '3653', descr => 'GiST tsvector support',
9602 proname => 'gtsvector_penalty', prorettype => 'internal',
9603 proargtypes => 'internal internal internal', prosrc => 'gtsvector_penalty' },
9604 { oid => '3654', descr => 'GiST tsvector support',
9605 proname => 'gtsvector_consistent', prorettype => 'bool',
9606 proargtypes => 'internal tsvector int2 oid internal',
9607 prosrc => 'gtsvector_consistent' },
9608 { oid => '3790', descr => 'GiST tsvector support (obsolete)',
9609 proname => 'gtsvector_consistent', prorettype => 'bool',
9610 proargtypes => 'internal gtsvector int4 oid internal',
9611 prosrc => 'gtsvector_consistent_oldsig' },
9612 { oid => '3434', descr => 'GiST tsvector support',
9613 proname => 'gtsvector_options', proisstrict => 'f', prorettype => 'void',
9614 proargtypes => 'internal', prosrc => 'gtsvector_options' },
9616 { oid => '3656', descr => 'GIN tsvector support',
9617 proname => 'gin_extract_tsvector', prorettype => 'internal',
9618 proargtypes => 'tsvector internal internal',
9619 prosrc => 'gin_extract_tsvector' },
9620 { oid => '3657', descr => 'GIN tsvector support',
9621 proname => 'gin_extract_tsquery', prorettype => 'internal',
9622 proargtypes => 'tsvector internal int2 internal internal internal internal',
9623 prosrc => 'gin_extract_tsquery' },
9624 { oid => '3658', descr => 'GIN tsvector support',
9625 proname => 'gin_tsquery_consistent', prorettype => 'bool',
9626 proargtypes => 'internal int2 tsvector int4 internal internal internal internal',
9627 prosrc => 'gin_tsquery_consistent' },
9628 { oid => '3921', descr => 'GIN tsvector support',
9629 proname => 'gin_tsquery_triconsistent', prorettype => 'char',
9630 proargtypes => 'internal int2 tsvector int4 internal internal internal',
9631 prosrc => 'gin_tsquery_triconsistent' },
9632 { oid => '3724', descr => 'GIN tsvector support',
9633 proname => 'gin_cmp_tslexeme', prorettype => 'int4',
9634 proargtypes => 'text text', prosrc => 'gin_cmp_tslexeme' },
9635 { oid => '2700', descr => 'GIN tsvector support',
9636 proname => 'gin_cmp_prefix', prorettype => 'int4',
9637 proargtypes => 'text text int2 internal', prosrc => 'gin_cmp_prefix' },
9638 { oid => '3077', descr => 'GIN tsvector support (obsolete)',
9639 proname => 'gin_extract_tsvector', prorettype => 'internal',
9640 proargtypes => 'tsvector internal', prosrc => 'gin_extract_tsvector_2args' },
9641 { oid => '3087', descr => 'GIN tsvector support (obsolete)',
9642 proname => 'gin_extract_tsquery', prorettype => 'internal',
9643 proargtypes => 'tsquery internal int2 internal internal',
9644 prosrc => 'gin_extract_tsquery_5args' },
9645 { oid => '3088', descr => 'GIN tsvector support (obsolete)',
9646 proname => 'gin_tsquery_consistent', prorettype => 'bool',
9647 proargtypes => 'internal int2 tsquery int4 internal internal',
9648 prosrc => 'gin_tsquery_consistent_6args' },
9649 { oid => '3791', descr => 'GIN tsvector support (obsolete)',
9650 proname => 'gin_extract_tsquery', prorettype => 'internal',
9651 proargtypes => 'tsquery internal int2 internal internal internal internal',
9652 prosrc => 'gin_extract_tsquery_oldsig' },
9653 { oid => '3792', descr => 'GIN tsvector support (obsolete)',
9654 proname => 'gin_tsquery_consistent', prorettype => 'bool',
9655 proargtypes => 'internal int2 tsquery int4 internal internal internal internal',
9656 prosrc => 'gin_tsquery_consistent_oldsig' },
9658 { oid => '3789', descr => 'clean up GIN pending list',
9659 proname => 'gin_clean_pending_list', provolatile => 'v', proparallel => 'u',
9660 prorettype => 'int8', proargtypes => 'regclass',
9661 prosrc => 'gin_clean_pending_list' },
9663 { oid => '3662',
9664 proname => 'tsquery_lt', prorettype => 'bool',
9665 proargtypes => 'tsquery tsquery', prosrc => 'tsquery_lt' },
9666 { oid => '3663',
9667 proname => 'tsquery_le', prorettype => 'bool',
9668 proargtypes => 'tsquery tsquery', prosrc => 'tsquery_le' },
9669 { oid => '3664',
9670 proname => 'tsquery_eq', prorettype => 'bool',
9671 proargtypes => 'tsquery tsquery', prosrc => 'tsquery_eq' },
9672 { oid => '3665',
9673 proname => 'tsquery_ne', prorettype => 'bool',
9674 proargtypes => 'tsquery tsquery', prosrc => 'tsquery_ne' },
9675 { oid => '3666',
9676 proname => 'tsquery_ge', prorettype => 'bool',
9677 proargtypes => 'tsquery tsquery', prosrc => 'tsquery_ge' },
9678 { oid => '3667',
9679 proname => 'tsquery_gt', prorettype => 'bool',
9680 proargtypes => 'tsquery tsquery', prosrc => 'tsquery_gt' },
9681 { oid => '3668', descr => 'less-equal-greater',
9682 proname => 'tsquery_cmp', prorettype => 'int4',
9683 proargtypes => 'tsquery tsquery', prosrc => 'tsquery_cmp' },
9685 { oid => '3669',
9686 proname => 'tsquery_and', prorettype => 'tsquery',
9687 proargtypes => 'tsquery tsquery', prosrc => 'tsquery_and' },
9688 { oid => '3670',
9689 proname => 'tsquery_or', prorettype => 'tsquery',
9690 proargtypes => 'tsquery tsquery', prosrc => 'tsquery_or' },
9691 { oid => '5003',
9692 proname => 'tsquery_phrase', prorettype => 'tsquery',
9693 proargtypes => 'tsquery tsquery', prosrc => 'tsquery_phrase' },
9694 { oid => '5004', descr => 'phrase-concatenate with distance',
9695 proname => 'tsquery_phrase', prorettype => 'tsquery',
9696 proargtypes => 'tsquery tsquery int4', prosrc => 'tsquery_phrase_distance' },
9697 { oid => '3671',
9698 proname => 'tsquery_not', prorettype => 'tsquery', proargtypes => 'tsquery',
9699 prosrc => 'tsquery_not' },
9701 { oid => '3691',
9702 proname => 'tsq_mcontains', prorettype => 'bool',
9703 proargtypes => 'tsquery tsquery', prosrc => 'tsq_mcontains' },
9704 { oid => '3692',
9705 proname => 'tsq_mcontained', prorettype => 'bool',
9706 proargtypes => 'tsquery tsquery', prosrc => 'tsq_mcontained' },
9708 { oid => '3672', descr => 'number of nodes',
9709 proname => 'numnode', prorettype => 'int4', proargtypes => 'tsquery',
9710 prosrc => 'tsquery_numnode' },
9711 { oid => '3673', descr => 'show real useful query for GiST index',
9712 proname => 'querytree', prorettype => 'text', proargtypes => 'tsquery',
9713 prosrc => 'tsquerytree' },
9715 { oid => '3684', descr => 'rewrite tsquery',
9716 proname => 'ts_rewrite', prorettype => 'tsquery',
9717 proargtypes => 'tsquery tsquery tsquery', prosrc => 'tsquery_rewrite' },
9718 { oid => '3685', descr => 'rewrite tsquery',
9719 proname => 'ts_rewrite', procost => '100', provolatile => 'v',
9720 proparallel => 'u', prorettype => 'tsquery', proargtypes => 'tsquery text',
9721 prosrc => 'tsquery_rewrite_query' },
9723 { oid => '3695', descr => 'GiST tsquery support',
9724 proname => 'gtsquery_compress', prorettype => 'internal',
9725 proargtypes => 'internal', prosrc => 'gtsquery_compress' },
9726 { oid => '3697', descr => 'GiST tsquery support',
9727 proname => 'gtsquery_picksplit', prorettype => 'internal',
9728 proargtypes => 'internal internal', prosrc => 'gtsquery_picksplit' },
9729 { oid => '3698', descr => 'GiST tsquery support',
9730 proname => 'gtsquery_union', prorettype => 'int8',
9731 proargtypes => 'internal internal', prosrc => 'gtsquery_union' },
9732 { oid => '3699', descr => 'GiST tsquery support',
9733 proname => 'gtsquery_same', prorettype => 'internal',
9734 proargtypes => 'int8 int8 internal', prosrc => 'gtsquery_same' },
9735 { oid => '3700', descr => 'GiST tsquery support',
9736 proname => 'gtsquery_penalty', prorettype => 'internal',
9737 proargtypes => 'internal internal internal', prosrc => 'gtsquery_penalty' },
9738 { oid => '3701', descr => 'GiST tsquery support',
9739 proname => 'gtsquery_consistent', prorettype => 'bool',
9740 proargtypes => 'internal tsquery int2 oid internal',
9741 prosrc => 'gtsquery_consistent' },
9742 { oid => '3793', descr => 'GiST tsquery support (obsolete)',
9743 proname => 'gtsquery_consistent', prorettype => 'bool',
9744 proargtypes => 'internal internal int4 oid internal',
9745 prosrc => 'gtsquery_consistent_oldsig' },
9747 { oid => '3686', descr => 'restriction selectivity of tsvector @@ tsquery',
9748 proname => 'tsmatchsel', provolatile => 's', prorettype => 'float8',
9749 proargtypes => 'internal oid internal int4', prosrc => 'tsmatchsel' },
9750 { oid => '3687', descr => 'join selectivity of tsvector @@ tsquery',
9751 proname => 'tsmatchjoinsel', provolatile => 's', prorettype => 'float8',
9752 proargtypes => 'internal oid internal int2 internal',
9753 prosrc => 'tsmatchjoinsel' },
9754 { oid => '3688', descr => 'tsvector typanalyze',
9755 proname => 'ts_typanalyze', provolatile => 's', prorettype => 'bool',
9756 proargtypes => 'internal', prosrc => 'ts_typanalyze' },
9758 { oid => '3689', descr => 'statistics of tsvector column',
9759 proname => 'ts_stat', procost => '10', prorows => '10000', proretset => 't',
9760 provolatile => 'v', proparallel => 'u', prorettype => 'record',
9761 proargtypes => 'text', proallargtypes => '{text,text,int4,int4}',
9762 proargmodes => '{i,o,o,o}', proargnames => '{query,word,ndoc,nentry}',
9763 prosrc => 'ts_stat1' },
9764 { oid => '3690', descr => 'statistics of tsvector column',
9765 proname => 'ts_stat', procost => '10', prorows => '10000', proretset => 't',
9766 provolatile => 'v', proparallel => 'u', prorettype => 'record',
9767 proargtypes => 'text text', proallargtypes => '{text,text,text,int4,int4}',
9768 proargmodes => '{i,i,o,o,o}',
9769 proargnames => '{query,weights,word,ndoc,nentry}', prosrc => 'ts_stat2' },
9771 { oid => '3703', descr => 'relevance',
9772 proname => 'ts_rank', prorettype => 'float4',
9773 proargtypes => '_float4 tsvector tsquery int4', prosrc => 'ts_rank_wttf' },
9774 { oid => '3704', descr => 'relevance',
9775 proname => 'ts_rank', prorettype => 'float4',
9776 proargtypes => '_float4 tsvector tsquery', prosrc => 'ts_rank_wtt' },
9777 { oid => '3705', descr => 'relevance',
9778 proname => 'ts_rank', prorettype => 'float4',
9779 proargtypes => 'tsvector tsquery int4', prosrc => 'ts_rank_ttf' },
9780 { oid => '3706', descr => 'relevance',
9781 proname => 'ts_rank', prorettype => 'float4',
9782 proargtypes => 'tsvector tsquery', prosrc => 'ts_rank_tt' },
9783 { oid => '3707', descr => 'relevance',
9784 proname => 'ts_rank_cd', prorettype => 'float4',
9785 proargtypes => '_float4 tsvector tsquery int4', prosrc => 'ts_rankcd_wttf' },
9786 { oid => '3708', descr => 'relevance',
9787 proname => 'ts_rank_cd', prorettype => 'float4',
9788 proargtypes => '_float4 tsvector tsquery', prosrc => 'ts_rankcd_wtt' },
9789 { oid => '3709', descr => 'relevance',
9790 proname => 'ts_rank_cd', prorettype => 'float4',
9791 proargtypes => 'tsvector tsquery int4', prosrc => 'ts_rankcd_ttf' },
9792 { oid => '3710', descr => 'relevance',
9793 proname => 'ts_rank_cd', prorettype => 'float4',
9794 proargtypes => 'tsvector tsquery', prosrc => 'ts_rankcd_tt' },
9796 { oid => '3713', descr => 'get parser\'s token types',
9797 proname => 'ts_token_type', prorows => '16', proretset => 't',
9798 prorettype => 'record', proargtypes => 'oid',
9799 proallargtypes => '{oid,int4,text,text}', proargmodes => '{i,o,o,o}',
9800 proargnames => '{parser_oid,tokid,alias,description}',
9801 prosrc => 'ts_token_type_byid' },
9802 { oid => '3714', descr => 'get parser\'s token types',
9803 proname => 'ts_token_type', prorows => '16', proretset => 't',
9804 provolatile => 's', prorettype => 'record', proargtypes => 'text',
9805 proallargtypes => '{text,int4,text,text}', proargmodes => '{i,o,o,o}',
9806 proargnames => '{parser_name,tokid,alias,description}',
9807 prosrc => 'ts_token_type_byname' },
9808 { oid => '3715', descr => 'parse text to tokens',
9809 proname => 'ts_parse', prorows => '1000', proretset => 't',
9810 prorettype => 'record', proargtypes => 'oid text',
9811 proallargtypes => '{oid,text,int4,text}', proargmodes => '{i,i,o,o}',
9812 proargnames => '{parser_oid,txt,tokid,token}', prosrc => 'ts_parse_byid' },
9813 { oid => '3716', descr => 'parse text to tokens',
9814 proname => 'ts_parse', prorows => '1000', proretset => 't',
9815 provolatile => 's', prorettype => 'record', proargtypes => 'text text',
9816 proallargtypes => '{text,text,int4,text}', proargmodes => '{i,i,o,o}',
9817 proargnames => '{parser_name,txt,tokid,token}', prosrc => 'ts_parse_byname' },
9819 { oid => '3717', descr => '(internal)',
9820 proname => 'prsd_start', prorettype => 'internal',
9821 proargtypes => 'internal int4', prosrc => 'prsd_start' },
9822 { oid => '3718', descr => '(internal)',
9823 proname => 'prsd_nexttoken', prorettype => 'internal',
9824 proargtypes => 'internal internal internal', prosrc => 'prsd_nexttoken' },
9825 { oid => '3719', descr => '(internal)',
9826 proname => 'prsd_end', prorettype => 'void', proargtypes => 'internal',
9827 prosrc => 'prsd_end' },
9828 { oid => '3720', descr => '(internal)',
9829 proname => 'prsd_headline', prorettype => 'internal',
9830 proargtypes => 'internal internal tsquery', prosrc => 'prsd_headline' },
9831 { oid => '3721', descr => '(internal)',
9832 proname => 'prsd_lextype', prorettype => 'internal',
9833 proargtypes => 'internal', prosrc => 'prsd_lextype' },
9835 { oid => '3723', descr => 'normalize one word by dictionary',
9836 proname => 'ts_lexize', prorettype => '_text',
9837 proargtypes => 'regdictionary text', prosrc => 'ts_lexize' },
9839 { oid => '6183', descr => 'debug function for text search configuration',
9840 proname => 'ts_debug', prolang => 'sql', prorows => '1000', proretset => 't',
9841 provolatile => 's', prorettype => 'record', proargtypes => 'regconfig text',
9842 proallargtypes => '{regconfig,text,text,text,text,_regdictionary,regdictionary,_text}',
9843 proargmodes => '{i,i,o,o,o,o,o,o}',
9844 proargnames => '{config,document,alias,description,token,dictionaries,dictionary,lexemes}',
9845 prosrc => 'see system_functions.sql' },
9847 { oid => '6184',
9848 descr => 'debug function for current text search configuration',
9849 proname => 'ts_debug', prolang => 'sql', prorows => '1000', proretset => 't',
9850 provolatile => 's', prorettype => 'record', proargtypes => 'text',
9851 proallargtypes => '{text,text,text,text,_regdictionary,regdictionary,_text}',
9852 proargmodes => '{i,o,o,o,o,o,o}',
9853 proargnames => '{document,alias,description,token,dictionaries,dictionary,lexemes}',
9854 prosrc => 'see system_functions.sql' },
9856 { oid => '3725', descr => '(internal)',
9857 proname => 'dsimple_init', prorettype => 'internal',
9858 proargtypes => 'internal', prosrc => 'dsimple_init' },
9859 { oid => '3726', descr => '(internal)',
9860 proname => 'dsimple_lexize', prorettype => 'internal',
9861 proargtypes => 'internal internal internal internal',
9862 prosrc => 'dsimple_lexize' },
9864 { oid => '3728', descr => '(internal)',
9865 proname => 'dsynonym_init', prorettype => 'internal',
9866 proargtypes => 'internal', prosrc => 'dsynonym_init' },
9867 { oid => '3729', descr => '(internal)',
9868 proname => 'dsynonym_lexize', prorettype => 'internal',
9869 proargtypes => 'internal internal internal internal',
9870 prosrc => 'dsynonym_lexize' },
9872 { oid => '3731', descr => '(internal)',
9873 proname => 'dispell_init', prorettype => 'internal',
9874 proargtypes => 'internal', prosrc => 'dispell_init' },
9875 { oid => '3732', descr => '(internal)',
9876 proname => 'dispell_lexize', prorettype => 'internal',
9877 proargtypes => 'internal internal internal internal',
9878 prosrc => 'dispell_lexize' },
9880 { oid => '3740', descr => '(internal)',
9881 proname => 'thesaurus_init', prorettype => 'internal',
9882 proargtypes => 'internal', prosrc => 'thesaurus_init' },
9883 { oid => '3741', descr => '(internal)',
9884 proname => 'thesaurus_lexize', prorettype => 'internal',
9885 proargtypes => 'internal internal internal internal',
9886 prosrc => 'thesaurus_lexize' },
9888 { oid => '3743', descr => 'generate headline',
9889 proname => 'ts_headline', procost => '100', prorettype => 'text',
9890 proargtypes => 'regconfig text tsquery text',
9891 prosrc => 'ts_headline_byid_opt' },
9892 { oid => '3744', descr => 'generate headline',
9893 proname => 'ts_headline', procost => '100', prorettype => 'text',
9894 proargtypes => 'regconfig text tsquery', prosrc => 'ts_headline_byid' },
9895 { oid => '3754', descr => 'generate headline',
9896 proname => 'ts_headline', procost => '100', provolatile => 's',
9897 prorettype => 'text', proargtypes => 'text tsquery text',
9898 prosrc => 'ts_headline_opt' },
9899 { oid => '3755', descr => 'generate headline',
9900 proname => 'ts_headline', procost => '100', provolatile => 's',
9901 prorettype => 'text', proargtypes => 'text tsquery',
9902 prosrc => 'ts_headline' },
9904 { oid => '4201', descr => 'generate headline from jsonb',
9905 proname => 'ts_headline', procost => '100', prorettype => 'jsonb',
9906 proargtypes => 'regconfig jsonb tsquery text',
9907 prosrc => 'ts_headline_jsonb_byid_opt' },
9908 { oid => '4202', descr => 'generate headline from jsonb',
9909 proname => 'ts_headline', procost => '100', prorettype => 'jsonb',
9910 proargtypes => 'regconfig jsonb tsquery',
9911 prosrc => 'ts_headline_jsonb_byid' },
9912 { oid => '4203', descr => 'generate headline from jsonb',
9913 proname => 'ts_headline', procost => '100', provolatile => 's',
9914 prorettype => 'jsonb', proargtypes => 'jsonb tsquery text',
9915 prosrc => 'ts_headline_jsonb_opt' },
9916 { oid => '4204', descr => 'generate headline from jsonb',
9917 proname => 'ts_headline', procost => '100', provolatile => 's',
9918 prorettype => 'jsonb', proargtypes => 'jsonb tsquery',
9919 prosrc => 'ts_headline_jsonb' },
9921 { oid => '4205', descr => 'generate headline from json',
9922 proname => 'ts_headline', procost => '100', prorettype => 'json',
9923 proargtypes => 'regconfig json tsquery text',
9924 prosrc => 'ts_headline_json_byid_opt' },
9925 { oid => '4206', descr => 'generate headline from json',
9926 proname => 'ts_headline', procost => '100', prorettype => 'json',
9927 proargtypes => 'regconfig json tsquery', prosrc => 'ts_headline_json_byid' },
9928 { oid => '4207', descr => 'generate headline from json',
9929 proname => 'ts_headline', procost => '100', provolatile => 's',
9930 prorettype => 'json', proargtypes => 'json tsquery text',
9931 prosrc => 'ts_headline_json_opt' },
9932 { oid => '4208', descr => 'generate headline from json',
9933 proname => 'ts_headline', procost => '100', provolatile => 's',
9934 prorettype => 'json', proargtypes => 'json tsquery',
9935 prosrc => 'ts_headline_json' },
9937 { oid => '3745', descr => 'transform to tsvector',
9938 proname => 'to_tsvector', procost => '100', prorettype => 'tsvector',
9939 proargtypes => 'regconfig text', prosrc => 'to_tsvector_byid' },
9940 { oid => '3746', descr => 'make tsquery',
9941 proname => 'to_tsquery', procost => '100', prorettype => 'tsquery',
9942 proargtypes => 'regconfig text', prosrc => 'to_tsquery_byid' },
9943 { oid => '3747', descr => 'transform to tsquery',
9944 proname => 'plainto_tsquery', procost => '100', prorettype => 'tsquery',
9945 proargtypes => 'regconfig text', prosrc => 'plainto_tsquery_byid' },
9946 { oid => '5006', descr => 'transform to tsquery',
9947 proname => 'phraseto_tsquery', procost => '100', prorettype => 'tsquery',
9948 proargtypes => 'regconfig text', prosrc => 'phraseto_tsquery_byid' },
9949 { oid => '5007', descr => 'transform to tsquery',
9950 proname => 'websearch_to_tsquery', procost => '100', prorettype => 'tsquery',
9951 proargtypes => 'regconfig text', prosrc => 'websearch_to_tsquery_byid' },
9952 { oid => '3749', descr => 'transform to tsvector',
9953 proname => 'to_tsvector', procost => '100', provolatile => 's',
9954 prorettype => 'tsvector', proargtypes => 'text', prosrc => 'to_tsvector' },
9955 { oid => '3750', descr => 'make tsquery',
9956 proname => 'to_tsquery', procost => '100', provolatile => 's',
9957 prorettype => 'tsquery', proargtypes => 'text', prosrc => 'to_tsquery' },
9958 { oid => '3751', descr => 'transform to tsquery',
9959 proname => 'plainto_tsquery', procost => '100', provolatile => 's',
9960 prorettype => 'tsquery', proargtypes => 'text', prosrc => 'plainto_tsquery' },
9961 { oid => '5001', descr => 'transform to tsquery',
9962 proname => 'phraseto_tsquery', procost => '100', provolatile => 's',
9963 prorettype => 'tsquery', proargtypes => 'text',
9964 prosrc => 'phraseto_tsquery' },
9965 { oid => '5009', descr => 'transform to tsquery',
9966 proname => 'websearch_to_tsquery', procost => '100', provolatile => 's',
9967 prorettype => 'tsquery', proargtypes => 'text',
9968 prosrc => 'websearch_to_tsquery' },
9969 { oid => '4209', descr => 'transform string values from jsonb to tsvector',
9970 proname => 'to_tsvector', procost => '100', provolatile => 's',
9971 prorettype => 'tsvector', proargtypes => 'jsonb',
9972 prosrc => 'jsonb_string_to_tsvector' },
9973 { oid => '4213', descr => 'transform specified values from jsonb to tsvector',
9974 proname => 'jsonb_to_tsvector', procost => '100', provolatile => 's',
9975 prorettype => 'tsvector', proargtypes => 'jsonb jsonb',
9976 prosrc => 'jsonb_to_tsvector' },
9977 { oid => '4210', descr => 'transform string values from json to tsvector',
9978 proname => 'to_tsvector', procost => '100', provolatile => 's',
9979 prorettype => 'tsvector', proargtypes => 'json',
9980 prosrc => 'json_string_to_tsvector' },
9981 { oid => '4215', descr => 'transform specified values from json to tsvector',
9982 proname => 'json_to_tsvector', procost => '100', provolatile => 's',
9983 prorettype => 'tsvector', proargtypes => 'json jsonb',
9984 prosrc => 'json_to_tsvector' },
9985 { oid => '4211', descr => 'transform string values from jsonb to tsvector',
9986 proname => 'to_tsvector', procost => '100', prorettype => 'tsvector',
9987 proargtypes => 'regconfig jsonb', prosrc => 'jsonb_string_to_tsvector_byid' },
9988 { oid => '4214', descr => 'transform specified values from jsonb to tsvector',
9989 proname => 'jsonb_to_tsvector', procost => '100', prorettype => 'tsvector',
9990 proargtypes => 'regconfig jsonb jsonb', prosrc => 'jsonb_to_tsvector_byid' },
9991 { oid => '4212', descr => 'transform string values from json to tsvector',
9992 proname => 'to_tsvector', procost => '100', prorettype => 'tsvector',
9993 proargtypes => 'regconfig json', prosrc => 'json_string_to_tsvector_byid' },
9994 { oid => '4216', descr => 'transform specified values from json to tsvector',
9995 proname => 'json_to_tsvector', procost => '100', prorettype => 'tsvector',
9996 proargtypes => 'regconfig json jsonb', prosrc => 'json_to_tsvector_byid' },
9998 { oid => '3752', descr => 'trigger for automatic update of tsvector column',
9999 proname => 'tsvector_update_trigger', proisstrict => 'f', provolatile => 'v',
10000 prorettype => 'trigger', proargtypes => '',
10001 prosrc => 'tsvector_update_trigger_byid' },
10002 { oid => '3753', descr => 'trigger for automatic update of tsvector column',
10003 proname => 'tsvector_update_trigger_column', proisstrict => 'f',
10004 provolatile => 'v', prorettype => 'trigger', proargtypes => '',
10005 prosrc => 'tsvector_update_trigger_bycolumn' },
10007 { oid => '3759', descr => 'get current tsearch configuration',
10008 proname => 'get_current_ts_config', provolatile => 's',
10009 prorettype => 'regconfig', proargtypes => '',
10010 prosrc => 'get_current_ts_config' },
10012 { oid => '3736', descr => 'I/O',
10013 proname => 'regconfigin', provolatile => 's', prorettype => 'regconfig',
10014 proargtypes => 'cstring', prosrc => 'regconfigin' },
10015 { oid => '3737', descr => 'I/O',
10016 proname => 'regconfigout', provolatile => 's', prorettype => 'cstring',
10017 proargtypes => 'regconfig', prosrc => 'regconfigout' },
10018 { oid => '3738', descr => 'I/O',
10019 proname => 'regconfigrecv', prorettype => 'regconfig',
10020 proargtypes => 'internal', prosrc => 'regconfigrecv' },
10021 { oid => '3739', descr => 'I/O',
10022 proname => 'regconfigsend', prorettype => 'bytea', proargtypes => 'regconfig',
10023 prosrc => 'regconfigsend' },
10025 { oid => '3771', descr => 'I/O',
10026 proname => 'regdictionaryin', provolatile => 's',
10027 prorettype => 'regdictionary', proargtypes => 'cstring',
10028 prosrc => 'regdictionaryin' },
10029 { oid => '3772', descr => 'I/O',
10030 proname => 'regdictionaryout', provolatile => 's', prorettype => 'cstring',
10031 proargtypes => 'regdictionary', prosrc => 'regdictionaryout' },
10032 { oid => '3773', descr => 'I/O',
10033 proname => 'regdictionaryrecv', prorettype => 'regdictionary',
10034 proargtypes => 'internal', prosrc => 'regdictionaryrecv' },
10035 { oid => '3774', descr => 'I/O',
10036 proname => 'regdictionarysend', prorettype => 'bytea',
10037 proargtypes => 'regdictionary', prosrc => 'regdictionarysend' },
10039 # jsonb
10040 { oid => '3806', descr => 'I/O',
10041 proname => 'jsonb_in', prorettype => 'jsonb', proargtypes => 'cstring',
10042 prosrc => 'jsonb_in' },
10043 { oid => '3805', descr => 'I/O',
10044 proname => 'jsonb_recv', prorettype => 'jsonb', proargtypes => 'internal',
10045 prosrc => 'jsonb_recv' },
10046 { oid => '3804', descr => 'I/O',
10047 proname => 'jsonb_out', prorettype => 'cstring', proargtypes => 'jsonb',
10048 prosrc => 'jsonb_out' },
10049 { oid => '3803', descr => 'I/O',
10050 proname => 'jsonb_send', prorettype => 'bytea', proargtypes => 'jsonb',
10051 prosrc => 'jsonb_send' },
10053 { oid => '3263', descr => 'map text array of key value pairs to jsonb object',
10054 proname => 'jsonb_object', prorettype => 'jsonb', proargtypes => '_text',
10055 prosrc => 'jsonb_object' },
10056 { oid => '3264', descr => 'map text array of key value pairs to jsonb object',
10057 proname => 'jsonb_object', prorettype => 'jsonb',
10058 proargtypes => '_text _text', prosrc => 'jsonb_object_two_arg' },
10059 { oid => '3787', descr => 'map input to jsonb',
10060 proname => 'to_jsonb', provolatile => 's', prorettype => 'jsonb',
10061 proargtypes => 'anyelement', prosrc => 'to_jsonb' },
10062 { oid => '3265', descr => 'jsonb aggregate transition function',
10063 proname => 'jsonb_agg_transfn', proisstrict => 'f', provolatile => 's',
10064 prorettype => 'internal', proargtypes => 'internal anyelement',
10065 prosrc => 'jsonb_agg_transfn' },
10066 { oid => '6283', descr => 'jsonb aggregate transition function',
10067 proname => 'jsonb_agg_strict_transfn', proisstrict => 'f', provolatile => 's',
10068 prorettype => 'internal', proargtypes => 'internal anyelement',
10069 prosrc => 'jsonb_agg_strict_transfn' },
10070 { oid => '3266', descr => 'jsonb aggregate final function',
10071 proname => 'jsonb_agg_finalfn', proisstrict => 'f', provolatile => 's',
10072 prorettype => 'jsonb', proargtypes => 'internal',
10073 prosrc => 'jsonb_agg_finalfn' },
10074 { oid => '3267', descr => 'aggregate input into jsonb',
10075 proname => 'jsonb_agg', prokind => 'a', proisstrict => 'f',
10076 provolatile => 's', prorettype => 'jsonb', proargtypes => 'anyelement',
10077 prosrc => 'aggregate_dummy' },
10078 { oid => '6284', descr => 'aggregate input into jsonb skipping nulls',
10079 proname => 'jsonb_agg_strict', prokind => 'a', proisstrict => 'f',
10080 provolatile => 's', prorettype => 'jsonb', proargtypes => 'anyelement',
10081 prosrc => 'aggregate_dummy' },
10082 { oid => '3268', descr => 'jsonb object aggregate transition function',
10083 proname => 'jsonb_object_agg_transfn', proisstrict => 'f', provolatile => 's',
10084 prorettype => 'internal', proargtypes => 'internal any any',
10085 prosrc => 'jsonb_object_agg_transfn' },
10086 { oid => '6285', descr => 'jsonb object aggregate transition function',
10087 proname => 'jsonb_object_agg_strict_transfn', proisstrict => 'f',
10088 provolatile => 's', prorettype => 'internal',
10089 proargtypes => 'internal any any',
10090 prosrc => 'jsonb_object_agg_strict_transfn' },
10091 { oid => '6286', descr => 'jsonb object aggregate transition function',
10092 proname => 'jsonb_object_agg_unique_transfn', proisstrict => 'f',
10093 provolatile => 's', prorettype => 'internal',
10094 proargtypes => 'internal any any',
10095 prosrc => 'jsonb_object_agg_unique_transfn' },
10096 { oid => '6287', descr => 'jsonb object aggregate transition function',
10097 proname => 'jsonb_object_agg_unique_strict_transfn', proisstrict => 'f',
10098 provolatile => 's', prorettype => 'internal',
10099 proargtypes => 'internal any any',
10100 prosrc => 'jsonb_object_agg_unique_strict_transfn' },
10101 { oid => '3269', descr => 'jsonb object aggregate final function',
10102 proname => 'jsonb_object_agg_finalfn', proisstrict => 'f', provolatile => 's',
10103 prorettype => 'jsonb', proargtypes => 'internal',
10104 prosrc => 'jsonb_object_agg_finalfn' },
10105 { oid => '3270', descr => 'aggregate inputs into jsonb object',
10106 proname => 'jsonb_object_agg', prokind => 'a', proisstrict => 'f',
10107 prorettype => 'jsonb', proargtypes => 'any any', proargnames => '{key,value}',
10108 prosrc => 'aggregate_dummy' },
10109 { oid => '6288', descr => 'aggregate non-NULL inputs into jsonb object',
10110 proname => 'jsonb_object_agg_strict', prokind => 'a', proisstrict => 'f',
10111 prorettype => 'jsonb', proargtypes => 'any any', proargnames => '{key,value}',
10112 prosrc => 'aggregate_dummy' },
10113 { oid => '6289',
10114 descr => 'aggregate inputs into jsonb object checking key uniqueness',
10115 proname => 'jsonb_object_agg_unique', prokind => 'a', proisstrict => 'f',
10116 prorettype => 'jsonb', proargtypes => 'any any', proargnames => '{key,value}',
10117 prosrc => 'aggregate_dummy' },
10118 { oid => '6290',
10119 descr => 'aggregate non-NULL inputs into jsonb object checking key uniqueness',
10120 proname => 'jsonb_object_agg_unique_strict', prokind => 'a',
10121 proisstrict => 'f', prorettype => 'jsonb', proargtypes => 'any any',
10122 proargnames => '{key,value}', prosrc => 'aggregate_dummy' },
10123 { oid => '3271', descr => 'build a jsonb array from any inputs',
10124 proname => 'jsonb_build_array', provariadic => 'any', proisstrict => 'f',
10125 provolatile => 's', prorettype => 'jsonb', proargtypes => 'any',
10126 proallargtypes => '{any}', proargmodes => '{v}',
10127 prosrc => 'jsonb_build_array' },
10128 { oid => '3272', descr => 'build an empty jsonb array',
10129 proname => 'jsonb_build_array', proisstrict => 'f', provolatile => 's',
10130 prorettype => 'jsonb', proargtypes => '',
10131 prosrc => 'jsonb_build_array_noargs' },
10132 { oid => '3273',
10133 descr => 'build a jsonb object from pairwise key/value inputs',
10134 proname => 'jsonb_build_object', provariadic => 'any', proisstrict => 'f',
10135 provolatile => 's', prorettype => 'jsonb', proargtypes => 'any',
10136 proallargtypes => '{any}', proargmodes => '{v}',
10137 prosrc => 'jsonb_build_object' },
10138 { oid => '3274', descr => 'build an empty jsonb object',
10139 proname => 'jsonb_build_object', proisstrict => 'f', provolatile => 's',
10140 prorettype => 'jsonb', proargtypes => '',
10141 prosrc => 'jsonb_build_object_noargs' },
10142 { oid => '3262', descr => 'remove object fields with null values from jsonb',
10143 proname => 'jsonb_strip_nulls', prorettype => 'jsonb', proargtypes => 'jsonb',
10144 prosrc => 'jsonb_strip_nulls' },
10146 { oid => '3478',
10147 proname => 'jsonb_object_field', prorettype => 'jsonb',
10148 proargtypes => 'jsonb text', proargnames => '{from_json, field_name}',
10149 prosrc => 'jsonb_object_field' },
10150 { oid => '3214',
10151 proname => 'jsonb_object_field_text', prorettype => 'text',
10152 proargtypes => 'jsonb text', proargnames => '{from_json, field_name}',
10153 prosrc => 'jsonb_object_field_text' },
10154 { oid => '3215',
10155 proname => 'jsonb_array_element', prorettype => 'jsonb',
10156 proargtypes => 'jsonb int4', proargnames => '{from_json, element_index}',
10157 prosrc => 'jsonb_array_element' },
10158 { oid => '3216',
10159 proname => 'jsonb_array_element_text', prorettype => 'text',
10160 proargtypes => 'jsonb int4', proargnames => '{from_json, element_index}',
10161 prosrc => 'jsonb_array_element_text' },
10162 { oid => '3217', descr => 'get value from jsonb with path elements',
10163 proname => 'jsonb_extract_path', provariadic => 'text', prorettype => 'jsonb',
10164 proargtypes => 'jsonb _text', proallargtypes => '{jsonb,_text}',
10165 proargmodes => '{i,v}', proargnames => '{from_json,path_elems}',
10166 prosrc => 'jsonb_extract_path' },
10167 { oid => '3940', descr => 'get value from jsonb as text with path elements',
10168 proname => 'jsonb_extract_path_text', provariadic => 'text',
10169 prorettype => 'text', proargtypes => 'jsonb _text',
10170 proallargtypes => '{jsonb,_text}', proargmodes => '{i,v}',
10171 proargnames => '{from_json,path_elems}',
10172 prosrc => 'jsonb_extract_path_text' },
10173 { oid => '3219', descr => 'elements of a jsonb array',
10174 proname => 'jsonb_array_elements', prorows => '100', proretset => 't',
10175 prorettype => 'jsonb', proargtypes => 'jsonb',
10176 proallargtypes => '{jsonb,jsonb}', proargmodes => '{i,o}',
10177 proargnames => '{from_json,value}', prosrc => 'jsonb_array_elements' },
10178 { oid => '3465', descr => 'elements of jsonb array',
10179 proname => 'jsonb_array_elements_text', prorows => '100', proretset => 't',
10180 prorettype => 'text', proargtypes => 'jsonb',
10181 proallargtypes => '{jsonb,text}', proargmodes => '{i,o}',
10182 proargnames => '{from_json,value}', prosrc => 'jsonb_array_elements_text' },
10183 { oid => '3207', descr => 'length of jsonb array',
10184 proname => 'jsonb_array_length', prorettype => 'int4', proargtypes => 'jsonb',
10185 prosrc => 'jsonb_array_length' },
10186 { oid => '3931', descr => 'get jsonb object keys',
10187 proname => 'jsonb_object_keys', prorows => '100', proretset => 't',
10188 prorettype => 'text', proargtypes => 'jsonb', prosrc => 'jsonb_object_keys' },
10189 { oid => '3208', descr => 'key value pairs of a jsonb object',
10190 proname => 'jsonb_each', prorows => '100', proretset => 't',
10191 prorettype => 'record', proargtypes => 'jsonb',
10192 proallargtypes => '{jsonb,text,jsonb}', proargmodes => '{i,o,o}',
10193 proargnames => '{from_json,key,value}', prosrc => 'jsonb_each' },
10194 { oid => '3932', descr => 'key value pairs of a jsonb object',
10195 proname => 'jsonb_each_text', prorows => '100', proretset => 't',
10196 prorettype => 'record', proargtypes => 'jsonb',
10197 proallargtypes => '{jsonb,text,text}', proargmodes => '{i,o,o}',
10198 proargnames => '{from_json,key,value}', prosrc => 'jsonb_each_text' },
10199 { oid => '3209', descr => 'get record fields from a jsonb object',
10200 proname => 'jsonb_populate_record', proisstrict => 'f', provolatile => 's',
10201 prorettype => 'anyelement', proargtypes => 'anyelement jsonb',
10202 prosrc => 'jsonb_populate_record' },
10203 { oid => '6338', descr => 'test get record fields from a jsonb object',
10204 proname => 'jsonb_populate_record_valid', proisstrict => 'f',
10205 provolatile => 's', prorettype => 'bool', proargtypes => 'anyelement jsonb',
10206 prosrc => 'jsonb_populate_record_valid' },
10207 { oid => '3475',
10208 descr => 'get set of records with fields from a jsonb array of objects',
10209 proname => 'jsonb_populate_recordset', prorows => '100', proisstrict => 'f',
10210 proretset => 't', provolatile => 's', prorettype => 'anyelement',
10211 proargtypes => 'anyelement jsonb', prosrc => 'jsonb_populate_recordset' },
10212 { oid => '3490', descr => 'get record fields from a jsonb object',
10213 proname => 'jsonb_to_record', provolatile => 's', prorettype => 'record',
10214 proargtypes => 'jsonb', prosrc => 'jsonb_to_record' },
10215 { oid => '3491',
10216 descr => 'get set of records with fields from a jsonb array of objects',
10217 proname => 'jsonb_to_recordset', prorows => '100', proisstrict => 'f',
10218 proretset => 't', provolatile => 's', prorettype => 'record',
10219 proargtypes => 'jsonb', prosrc => 'jsonb_to_recordset' },
10220 { oid => '3210', descr => 'get the type of a jsonb value',
10221 proname => 'jsonb_typeof', prorettype => 'text', proargtypes => 'jsonb',
10222 prosrc => 'jsonb_typeof' },
10223 { oid => '4038',
10224 proname => 'jsonb_ne', prorettype => 'bool', proargtypes => 'jsonb jsonb',
10225 prosrc => 'jsonb_ne' },
10226 { oid => '4039',
10227 proname => 'jsonb_lt', prorettype => 'bool', proargtypes => 'jsonb jsonb',
10228 prosrc => 'jsonb_lt' },
10229 { oid => '4040',
10230 proname => 'jsonb_gt', prorettype => 'bool', proargtypes => 'jsonb jsonb',
10231 prosrc => 'jsonb_gt' },
10232 { oid => '4041',
10233 proname => 'jsonb_le', prorettype => 'bool', proargtypes => 'jsonb jsonb',
10234 prosrc => 'jsonb_le' },
10235 { oid => '4042',
10236 proname => 'jsonb_ge', prorettype => 'bool', proargtypes => 'jsonb jsonb',
10237 prosrc => 'jsonb_ge' },
10238 { oid => '4043',
10239 proname => 'jsonb_eq', prorettype => 'bool', proargtypes => 'jsonb jsonb',
10240 prosrc => 'jsonb_eq' },
10241 { oid => '4044', descr => 'less-equal-greater',
10242 proname => 'jsonb_cmp', prorettype => 'int4', proargtypes => 'jsonb jsonb',
10243 prosrc => 'jsonb_cmp' },
10244 { oid => '4045', descr => 'hash',
10245 proname => 'jsonb_hash', prorettype => 'int4', proargtypes => 'jsonb',
10246 prosrc => 'jsonb_hash' },
10247 { oid => '3416', descr => 'hash',
10248 proname => 'jsonb_hash_extended', prorettype => 'int8',
10249 proargtypes => 'jsonb int8', prosrc => 'jsonb_hash_extended' },
10250 { oid => '4046',
10251 proname => 'jsonb_contains', prorettype => 'bool',
10252 proargtypes => 'jsonb jsonb', prosrc => 'jsonb_contains' },
10253 { oid => '4047',
10254 proname => 'jsonb_exists', prorettype => 'bool', proargtypes => 'jsonb text',
10255 prosrc => 'jsonb_exists' },
10256 { oid => '4048',
10257 proname => 'jsonb_exists_any', prorettype => 'bool',
10258 proargtypes => 'jsonb _text', prosrc => 'jsonb_exists_any' },
10259 { oid => '4049',
10260 proname => 'jsonb_exists_all', prorettype => 'bool',
10261 proargtypes => 'jsonb _text', prosrc => 'jsonb_exists_all' },
10262 { oid => '4050',
10263 proname => 'jsonb_contained', prorettype => 'bool',
10264 proargtypes => 'jsonb jsonb', prosrc => 'jsonb_contained' },
10265 { oid => '3480', descr => 'GIN support',
10266 proname => 'gin_compare_jsonb', prorettype => 'int4',
10267 proargtypes => 'text text', prosrc => 'gin_compare_jsonb' },
10268 { oid => '3482', descr => 'GIN support',
10269 proname => 'gin_extract_jsonb', prorettype => 'internal',
10270 proargtypes => 'jsonb internal internal', prosrc => 'gin_extract_jsonb' },
10271 { oid => '3483', descr => 'GIN support',
10272 proname => 'gin_extract_jsonb_query', prorettype => 'internal',
10273 proargtypes => 'jsonb internal int2 internal internal internal internal',
10274 prosrc => 'gin_extract_jsonb_query' },
10275 { oid => '3484', descr => 'GIN support',
10276 proname => 'gin_consistent_jsonb', prorettype => 'bool',
10277 proargtypes => 'internal int2 jsonb int4 internal internal internal internal',
10278 prosrc => 'gin_consistent_jsonb' },
10279 { oid => '3488', descr => 'GIN support',
10280 proname => 'gin_triconsistent_jsonb', prorettype => 'char',
10281 proargtypes => 'internal int2 jsonb int4 internal internal internal',
10282 prosrc => 'gin_triconsistent_jsonb' },
10283 { oid => '3485', descr => 'GIN support',
10284 proname => 'gin_extract_jsonb_path', prorettype => 'internal',
10285 proargtypes => 'jsonb internal internal',
10286 prosrc => 'gin_extract_jsonb_path' },
10287 { oid => '3486', descr => 'GIN support',
10288 proname => 'gin_extract_jsonb_query_path', prorettype => 'internal',
10289 proargtypes => 'jsonb internal int2 internal internal internal internal',
10290 prosrc => 'gin_extract_jsonb_query_path' },
10291 { oid => '3487', descr => 'GIN support',
10292 proname => 'gin_consistent_jsonb_path', prorettype => 'bool',
10293 proargtypes => 'internal int2 jsonb int4 internal internal internal internal',
10294 prosrc => 'gin_consistent_jsonb_path' },
10295 { oid => '3489', descr => 'GIN support',
10296 proname => 'gin_triconsistent_jsonb_path', prorettype => 'char',
10297 proargtypes => 'internal int2 jsonb int4 internal internal internal',
10298 prosrc => 'gin_triconsistent_jsonb_path' },
10299 { oid => '3301',
10300 proname => 'jsonb_concat', prorettype => 'jsonb',
10301 proargtypes => 'jsonb jsonb', prosrc => 'jsonb_concat' },
10302 { oid => '3302',
10303 proname => 'jsonb_delete', prorettype => 'jsonb', proargtypes => 'jsonb text',
10304 prosrc => 'jsonb_delete' },
10305 { oid => '3303',
10306 proname => 'jsonb_delete', prorettype => 'jsonb', proargtypes => 'jsonb int4',
10307 prosrc => 'jsonb_delete_idx' },
10308 { oid => '3343',
10309 proname => 'jsonb_delete', provariadic => 'text', prorettype => 'jsonb',
10310 proargtypes => 'jsonb _text', proallargtypes => '{jsonb,_text}',
10311 proargmodes => '{i,v}', proargnames => '{from_json,path_elems}',
10312 prosrc => 'jsonb_delete_array' },
10313 { oid => '3304',
10314 proname => 'jsonb_delete_path', prorettype => 'jsonb',
10315 proargtypes => 'jsonb _text', prosrc => 'jsonb_delete_path' },
10316 { oid => '5054', descr => 'Set part of a jsonb, handle NULL value',
10317 proname => 'jsonb_set_lax', proisstrict => 'f', prorettype => 'jsonb',
10318 proargtypes => 'jsonb _text jsonb bool text', prosrc => 'jsonb_set_lax' },
10319 { oid => '3305', descr => 'Set part of a jsonb',
10320 proname => 'jsonb_set', prorettype => 'jsonb',
10321 proargtypes => 'jsonb _text jsonb bool', prosrc => 'jsonb_set' },
10322 { oid => '3306', descr => 'Indented text from jsonb',
10323 proname => 'jsonb_pretty', prorettype => 'text', proargtypes => 'jsonb',
10324 prosrc => 'jsonb_pretty' },
10325 { oid => '3579', descr => 'Insert value into a jsonb',
10326 proname => 'jsonb_insert', prorettype => 'jsonb',
10327 proargtypes => 'jsonb _text jsonb bool', prosrc => 'jsonb_insert' },
10329 # jsonpath
10330 { oid => '4001', descr => 'I/O',
10331 proname => 'jsonpath_in', prorettype => 'jsonpath', proargtypes => 'cstring',
10332 prosrc => 'jsonpath_in' },
10333 { oid => '4002', descr => 'I/O',
10334 proname => 'jsonpath_recv', prorettype => 'jsonpath',
10335 proargtypes => 'internal', prosrc => 'jsonpath_recv' },
10336 { oid => '4003', descr => 'I/O',
10337 proname => 'jsonpath_out', prorettype => 'cstring', proargtypes => 'jsonpath',
10338 prosrc => 'jsonpath_out' },
10339 { oid => '4004', descr => 'I/O',
10340 proname => 'jsonpath_send', prorettype => 'bytea', proargtypes => 'jsonpath',
10341 prosrc => 'jsonpath_send' },
10343 { oid => '4005', descr => 'jsonpath exists test',
10344 proname => 'jsonb_path_exists', prorettype => 'bool',
10345 proargtypes => 'jsonb jsonpath jsonb bool', prosrc => 'jsonb_path_exists' },
10346 { oid => '4006', descr => 'jsonpath query',
10347 proname => 'jsonb_path_query', prorows => '1000', proretset => 't',
10348 prorettype => 'jsonb', proargtypes => 'jsonb jsonpath jsonb bool',
10349 prosrc => 'jsonb_path_query' },
10350 { oid => '4007', descr => 'jsonpath query wrapped into array',
10351 proname => 'jsonb_path_query_array', prorettype => 'jsonb',
10352 proargtypes => 'jsonb jsonpath jsonb bool',
10353 prosrc => 'jsonb_path_query_array' },
10354 { oid => '4008', descr => 'jsonpath query first item',
10355 proname => 'jsonb_path_query_first', prorettype => 'jsonb',
10356 proargtypes => 'jsonb jsonpath jsonb bool',
10357 prosrc => 'jsonb_path_query_first' },
10358 { oid => '4009', descr => 'jsonpath match',
10359 proname => 'jsonb_path_match', prorettype => 'bool',
10360 proargtypes => 'jsonb jsonpath jsonb bool', prosrc => 'jsonb_path_match' },
10362 { oid => '1177', descr => 'jsonpath exists test with timezone',
10363 proname => 'jsonb_path_exists_tz', provolatile => 's', prorettype => 'bool',
10364 proargtypes => 'jsonb jsonpath jsonb bool',
10365 prosrc => 'jsonb_path_exists_tz' },
10366 { oid => '1179', descr => 'jsonpath query with timezone',
10367 proname => 'jsonb_path_query_tz', prorows => '1000', proretset => 't',
10368 provolatile => 's', prorettype => 'jsonb',
10369 proargtypes => 'jsonb jsonpath jsonb bool', prosrc => 'jsonb_path_query_tz' },
10370 { oid => '1180', descr => 'jsonpath query wrapped into array with timezone',
10371 proname => 'jsonb_path_query_array_tz', provolatile => 's',
10372 prorettype => 'jsonb', proargtypes => 'jsonb jsonpath jsonb bool',
10373 prosrc => 'jsonb_path_query_array_tz' },
10374 { oid => '2023', descr => 'jsonpath query first item with timezone',
10375 proname => 'jsonb_path_query_first_tz', provolatile => 's',
10376 prorettype => 'jsonb', proargtypes => 'jsonb jsonpath jsonb bool',
10377 prosrc => 'jsonb_path_query_first_tz' },
10378 { oid => '2030', descr => 'jsonpath match with timezone',
10379 proname => 'jsonb_path_match_tz', provolatile => 's', prorettype => 'bool',
10380 proargtypes => 'jsonb jsonpath jsonb bool', prosrc => 'jsonb_path_match_tz' },
10382 { oid => '4010', descr => 'implementation of @? operator',
10383 proname => 'jsonb_path_exists_opr', prorettype => 'bool',
10384 proargtypes => 'jsonb jsonpath', prosrc => 'jsonb_path_exists_opr' },
10385 { oid => '4011', descr => 'implementation of @@ operator',
10386 proname => 'jsonb_path_match_opr', prorettype => 'bool',
10387 proargtypes => 'jsonb jsonpath', prosrc => 'jsonb_path_match_opr' },
10389 # historical int8/txid_snapshot variants of xid8 functions
10390 { oid => '2939', descr => 'I/O',
10391 proname => 'txid_snapshot_in', prorettype => 'txid_snapshot',
10392 proargtypes => 'cstring', prosrc => 'pg_snapshot_in' },
10393 { oid => '2940', descr => 'I/O',
10394 proname => 'txid_snapshot_out', prorettype => 'cstring',
10395 proargtypes => 'txid_snapshot', prosrc => 'pg_snapshot_out' },
10396 { oid => '2941', descr => 'I/O',
10397 proname => 'txid_snapshot_recv', prorettype => 'txid_snapshot',
10398 proargtypes => 'internal', prosrc => 'pg_snapshot_recv' },
10399 { oid => '2942', descr => 'I/O',
10400 proname => 'txid_snapshot_send', prorettype => 'bytea',
10401 proargtypes => 'txid_snapshot', prosrc => 'pg_snapshot_send' },
10402 { oid => '2943', descr => 'get current transaction ID',
10403 proname => 'txid_current', provolatile => 's', proparallel => 'u',
10404 prorettype => 'int8', proargtypes => '', prosrc => 'pg_current_xact_id' },
10405 { oid => '3348', descr => 'get current transaction ID',
10406 proname => 'txid_current_if_assigned', provolatile => 's', proparallel => 'u',
10407 prorettype => 'int8', proargtypes => '',
10408 prosrc => 'pg_current_xact_id_if_assigned' },
10409 { oid => '2944', descr => 'get current snapshot',
10410 proname => 'txid_current_snapshot', provolatile => 's',
10411 prorettype => 'txid_snapshot', proargtypes => '',
10412 prosrc => 'pg_current_snapshot' },
10413 { oid => '2945', descr => 'get xmin of snapshot',
10414 proname => 'txid_snapshot_xmin', prorettype => 'int8',
10415 proargtypes => 'txid_snapshot', prosrc => 'pg_snapshot_xmin' },
10416 { oid => '2946', descr => 'get xmax of snapshot',
10417 proname => 'txid_snapshot_xmax', prorettype => 'int8',
10418 proargtypes => 'txid_snapshot', prosrc => 'pg_snapshot_xmax' },
10419 { oid => '2947', descr => 'get set of in-progress txids in snapshot',
10420 proname => 'txid_snapshot_xip', prorows => '50', proretset => 't',
10421 prorettype => 'int8', proargtypes => 'txid_snapshot',
10422 prosrc => 'pg_snapshot_xip' },
10423 { oid => '2948', descr => 'is txid visible in snapshot?',
10424 proname => 'txid_visible_in_snapshot', prorettype => 'bool',
10425 proargtypes => 'int8 txid_snapshot', prosrc => 'pg_visible_in_snapshot' },
10426 { oid => '3360', descr => 'commit status of transaction',
10427 proname => 'txid_status', provolatile => 'v', prorettype => 'text',
10428 proargtypes => 'int8', prosrc => 'pg_xact_status' },
10430 # pg_snapshot functions
10431 { oid => '5055', descr => 'I/O',
10432 proname => 'pg_snapshot_in', prorettype => 'pg_snapshot',
10433 proargtypes => 'cstring', prosrc => 'pg_snapshot_in' },
10434 { oid => '5056', descr => 'I/O',
10435 proname => 'pg_snapshot_out', prorettype => 'cstring',
10436 proargtypes => 'pg_snapshot', prosrc => 'pg_snapshot_out' },
10437 { oid => '5057', descr => 'I/O',
10438 proname => 'pg_snapshot_recv', prorettype => 'pg_snapshot',
10439 proargtypes => 'internal', prosrc => 'pg_snapshot_recv' },
10440 { oid => '5058', descr => 'I/O',
10441 proname => 'pg_snapshot_send', prorettype => 'bytea',
10442 proargtypes => 'pg_snapshot', prosrc => 'pg_snapshot_send' },
10443 { oid => '5061', descr => 'get current snapshot',
10444 proname => 'pg_current_snapshot', provolatile => 's',
10445 prorettype => 'pg_snapshot', proargtypes => '',
10446 prosrc => 'pg_current_snapshot' },
10447 { oid => '5062', descr => 'get xmin of snapshot',
10448 proname => 'pg_snapshot_xmin', prorettype => 'xid8',
10449 proargtypes => 'pg_snapshot', prosrc => 'pg_snapshot_xmin' },
10450 { oid => '5063', descr => 'get xmax of snapshot',
10451 proname => 'pg_snapshot_xmax', prorettype => 'xid8',
10452 proargtypes => 'pg_snapshot', prosrc => 'pg_snapshot_xmax' },
10453 { oid => '5064', descr => 'get set of in-progress transactions in snapshot',
10454 proname => 'pg_snapshot_xip', prorows => '50', proretset => 't',
10455 prorettype => 'xid8', proargtypes => 'pg_snapshot',
10456 prosrc => 'pg_snapshot_xip' },
10457 { oid => '5065', descr => 'is xid8 visible in snapshot?',
10458 proname => 'pg_visible_in_snapshot', prorettype => 'bool',
10459 proargtypes => 'xid8 pg_snapshot', prosrc => 'pg_visible_in_snapshot' },
10461 # transaction ID and status functions
10462 { oid => '5059', descr => 'get current transaction ID',
10463 proname => 'pg_current_xact_id', provolatile => 's', proparallel => 'u',
10464 prorettype => 'xid8', proargtypes => '', prosrc => 'pg_current_xact_id' },
10465 { oid => '5060', descr => 'get current transaction ID',
10466 proname => 'pg_current_xact_id_if_assigned', provolatile => 's',
10467 proparallel => 'u', prorettype => 'xid8', proargtypes => '',
10468 prosrc => 'pg_current_xact_id_if_assigned' },
10469 { oid => '5066', descr => 'commit status of transaction',
10470 proname => 'pg_xact_status', provolatile => 'v', prorettype => 'text',
10471 proargtypes => 'xid8', prosrc => 'pg_xact_status' },
10473 # record comparison using normal comparison rules
10474 { oid => '2981',
10475 proname => 'record_eq', prorettype => 'bool', proargtypes => 'record record',
10476 prosrc => 'record_eq' },
10477 { oid => '2982',
10478 proname => 'record_ne', prorettype => 'bool', proargtypes => 'record record',
10479 prosrc => 'record_ne' },
10480 { oid => '2983',
10481 proname => 'record_lt', prorettype => 'bool', proargtypes => 'record record',
10482 prosrc => 'record_lt' },
10483 { oid => '2984',
10484 proname => 'record_gt', prorettype => 'bool', proargtypes => 'record record',
10485 prosrc => 'record_gt' },
10486 { oid => '2985',
10487 proname => 'record_le', prorettype => 'bool', proargtypes => 'record record',
10488 prosrc => 'record_le' },
10489 { oid => '2986',
10490 proname => 'record_ge', prorettype => 'bool', proargtypes => 'record record',
10491 prosrc => 'record_ge' },
10492 { oid => '2987', descr => 'less-equal-greater',
10493 proname => 'btrecordcmp', prorettype => 'int4',
10494 proargtypes => 'record record', prosrc => 'btrecordcmp' },
10495 { oid => '8597', descr => 'larger of two',
10496 proname => 'record_larger', prorettype => 'record',
10497 proargtypes => 'record record', prosrc => 'record_larger' },
10498 { oid => '8598', descr => 'smaller of two',
10499 proname => 'record_smaller', prorettype => 'record',
10500 proargtypes => 'record record', prosrc => 'record_smaller' },
10502 { oid => '6192', descr => 'hash',
10503 proname => 'hash_record', prorettype => 'int4', proargtypes => 'record',
10504 prosrc => 'hash_record' },
10505 { oid => '6193', descr => 'hash',
10506 proname => 'hash_record_extended', prorettype => 'int8',
10507 proargtypes => 'record int8', prosrc => 'hash_record_extended' },
10509 # record comparison using raw byte images
10510 { oid => '3181',
10511 proname => 'record_image_eq', prorettype => 'bool',
10512 proargtypes => 'record record', prosrc => 'record_image_eq' },
10513 { oid => '3182',
10514 proname => 'record_image_ne', prorettype => 'bool',
10515 proargtypes => 'record record', prosrc => 'record_image_ne' },
10516 { oid => '3183',
10517 proname => 'record_image_lt', prorettype => 'bool',
10518 proargtypes => 'record record', prosrc => 'record_image_lt' },
10519 { oid => '3184',
10520 proname => 'record_image_gt', prorettype => 'bool',
10521 proargtypes => 'record record', prosrc => 'record_image_gt' },
10522 { oid => '3185',
10523 proname => 'record_image_le', prorettype => 'bool',
10524 proargtypes => 'record record', prosrc => 'record_image_le' },
10525 { oid => '3186',
10526 proname => 'record_image_ge', prorettype => 'bool',
10527 proargtypes => 'record record', prosrc => 'record_image_ge' },
10528 { oid => '3187', descr => 'less-equal-greater based on byte images',
10529 proname => 'btrecordimagecmp', prorettype => 'int4',
10530 proargtypes => 'record record', prosrc => 'btrecordimagecmp' },
10531 { oid => '5051', descr => 'equal image',
10532 proname => 'btequalimage', prorettype => 'bool', proargtypes => 'oid',
10533 prosrc => 'btequalimage' },
10535 # Extensions
10536 { oid => '3082', descr => 'list available extensions',
10537 proname => 'pg_available_extensions', procost => '10', prorows => '100',
10538 proretset => 't', provolatile => 's', prorettype => 'record',
10539 proargtypes => '', proallargtypes => '{name,text,text}',
10540 proargmodes => '{o,o,o}', proargnames => '{name,default_version,comment}',
10541 prosrc => 'pg_available_extensions' },
10542 { oid => '3083', descr => 'list available extension versions',
10543 proname => 'pg_available_extension_versions', procost => '10',
10544 prorows => '100', proretset => 't', provolatile => 's',
10545 prorettype => 'record', proargtypes => '',
10546 proallargtypes => '{name,text,bool,bool,bool,name,_name,text}',
10547 proargmodes => '{o,o,o,o,o,o,o,o}',
10548 proargnames => '{name,version,superuser,trusted,relocatable,schema,requires,comment}',
10549 prosrc => 'pg_available_extension_versions' },
10550 { oid => '3084', descr => 'list an extension\'s version update paths',
10551 proname => 'pg_extension_update_paths', procost => '10', prorows => '100',
10552 proretset => 't', provolatile => 's', prorettype => 'record',
10553 proargtypes => 'name', proallargtypes => '{name,text,text,text}',
10554 proargmodes => '{i,o,o,o}', proargnames => '{name,source,target,path}',
10555 prosrc => 'pg_extension_update_paths' },
10556 { oid => '3086',
10557 descr => 'flag an extension\'s table contents to be emitted by pg_dump',
10558 proname => 'pg_extension_config_dump', provolatile => 'v', proparallel => 'u',
10559 prorettype => 'void', proargtypes => 'regclass text',
10560 prosrc => 'pg_extension_config_dump' },
10562 # SQL-spec window functions
10563 { oid => '3100', descr => 'row number within partition',
10564 proname => 'row_number', prosupport => 'window_row_number_support',
10565 prokind => 'w', proisstrict => 'f', prorettype => 'int8', proargtypes => '',
10566 prosrc => 'window_row_number' },
10567 { oid => '6233', descr => 'planner support for row_number',
10568 proname => 'window_row_number_support', prorettype => 'internal',
10569 proargtypes => 'internal', prosrc => 'window_row_number_support' },
10570 { oid => '3101', descr => 'integer rank with gaps',
10571 proname => 'rank', prosupport => 'window_rank_support', prokind => 'w',
10572 proisstrict => 'f', prorettype => 'int8', proargtypes => '',
10573 prosrc => 'window_rank' },
10574 { oid => '6234', descr => 'planner support for rank',
10575 proname => 'window_rank_support', prorettype => 'internal',
10576 proargtypes => 'internal', prosrc => 'window_rank_support' },
10577 { oid => '3102', descr => 'integer rank without gaps',
10578 proname => 'dense_rank', prosupport => 'window_dense_rank_support',
10579 prokind => 'w', proisstrict => 'f', prorettype => 'int8', proargtypes => '',
10580 prosrc => 'window_dense_rank' },
10581 { oid => '6235', descr => 'planner support for dense_rank',
10582 proname => 'window_dense_rank_support', prorettype => 'internal',
10583 proargtypes => 'internal', prosrc => 'window_dense_rank_support' },
10584 { oid => '3103', descr => 'fractional rank within partition',
10585 proname => 'percent_rank', prosupport => 'window_percent_rank_support',
10586 prokind => 'w', proisstrict => 'f', prorettype => 'float8', proargtypes => '',
10587 prosrc => 'window_percent_rank' },
10588 { oid => '6306', descr => 'planner support for percent_rank',
10589 proname => 'window_percent_rank_support', prorettype => 'internal',
10590 proargtypes => 'internal', prosrc => 'window_percent_rank_support' },
10591 { oid => '3104', descr => 'fractional row number within partition',
10592 proname => 'cume_dist', prosupport => 'window_cume_dist_support',
10593 prokind => 'w', proisstrict => 'f', prorettype => 'float8', proargtypes => '',
10594 prosrc => 'window_cume_dist' },
10595 { oid => '6307', descr => 'planner support for cume_dist',
10596 proname => 'window_cume_dist_support', prorettype => 'internal',
10597 proargtypes => 'internal', prosrc => 'window_cume_dist_support' },
10598 { oid => '3105', descr => 'split rows into N groups',
10599 proname => 'ntile', prosupport => 'window_ntile_support', prokind => 'w',
10600 prorettype => 'int4', proargtypes => 'int4', prosrc => 'window_ntile' },
10601 { oid => '6308', descr => 'planner support for ntile',
10602 proname => 'window_ntile_support', prorettype => 'internal',
10603 proargtypes => 'internal', prosrc => 'window_ntile_support' },
10604 { oid => '3106', descr => 'fetch the preceding row value',
10605 proname => 'lag', prokind => 'w', prorettype => 'anyelement',
10606 proargtypes => 'anyelement', prosrc => 'window_lag' },
10607 { oid => '3107', descr => 'fetch the Nth preceding row value',
10608 proname => 'lag', prokind => 'w', prorettype => 'anyelement',
10609 proargtypes => 'anyelement int4', prosrc => 'window_lag_with_offset' },
10610 { oid => '3108', descr => 'fetch the Nth preceding row value with default',
10611 proname => 'lag', prokind => 'w', prorettype => 'anycompatible',
10612 proargtypes => 'anycompatible int4 anycompatible',
10613 prosrc => 'window_lag_with_offset_and_default' },
10614 { oid => '3109', descr => 'fetch the following row value',
10615 proname => 'lead', prokind => 'w', prorettype => 'anyelement',
10616 proargtypes => 'anyelement', prosrc => 'window_lead' },
10617 { oid => '3110', descr => 'fetch the Nth following row value',
10618 proname => 'lead', prokind => 'w', prorettype => 'anyelement',
10619 proargtypes => 'anyelement int4', prosrc => 'window_lead_with_offset' },
10620 { oid => '3111', descr => 'fetch the Nth following row value with default',
10621 proname => 'lead', prokind => 'w', prorettype => 'anycompatible',
10622 proargtypes => 'anycompatible int4 anycompatible',
10623 prosrc => 'window_lead_with_offset_and_default' },
10624 { oid => '3112', descr => 'fetch the first row value',
10625 proname => 'first_value', prokind => 'w', prorettype => 'anyelement',
10626 proargtypes => 'anyelement', prosrc => 'window_first_value' },
10627 { oid => '3113', descr => 'fetch the last row value',
10628 proname => 'last_value', prokind => 'w', prorettype => 'anyelement',
10629 proargtypes => 'anyelement', prosrc => 'window_last_value' },
10630 { oid => '3114', descr => 'fetch the Nth row value',
10631 proname => 'nth_value', prokind => 'w', prorettype => 'anyelement',
10632 proargtypes => 'anyelement int4', prosrc => 'window_nth_value' },
10634 # functions for range types
10635 { oid => '3832', descr => 'I/O',
10636 proname => 'anyrange_in', provolatile => 's', prorettype => 'anyrange',
10637 proargtypes => 'cstring oid int4', prosrc => 'anyrange_in' },
10638 { oid => '3833', descr => 'I/O',
10639 proname => 'anyrange_out', provolatile => 's', prorettype => 'cstring',
10640 proargtypes => 'anyrange', prosrc => 'anyrange_out' },
10641 { oid => '3834', descr => 'I/O',
10642 proname => 'range_in', provolatile => 's', prorettype => 'anyrange',
10643 proargtypes => 'cstring oid int4', prosrc => 'range_in' },
10644 { oid => '3835', descr => 'I/O',
10645 proname => 'range_out', provolatile => 's', prorettype => 'cstring',
10646 proargtypes => 'anyrange', prosrc => 'range_out' },
10647 { oid => '3836', descr => 'I/O',
10648 proname => 'range_recv', provolatile => 's', prorettype => 'anyrange',
10649 proargtypes => 'internal oid int4', prosrc => 'range_recv' },
10650 { oid => '3837', descr => 'I/O',
10651 proname => 'range_send', provolatile => 's', prorettype => 'bytea',
10652 proargtypes => 'anyrange', prosrc => 'range_send' },
10653 { oid => '3848', descr => 'lower bound of range',
10654 proname => 'lower', prorettype => 'anyelement', proargtypes => 'anyrange',
10655 prosrc => 'range_lower' },
10656 { oid => '3849', descr => 'upper bound of range',
10657 proname => 'upper', prorettype => 'anyelement', proargtypes => 'anyrange',
10658 prosrc => 'range_upper' },
10659 { oid => '3850', descr => 'is the range empty?',
10660 proname => 'isempty', prorettype => 'bool', proargtypes => 'anyrange',
10661 prosrc => 'range_empty' },
10662 { oid => '3851', descr => 'is the range\'s lower bound inclusive?',
10663 proname => 'lower_inc', prorettype => 'bool', proargtypes => 'anyrange',
10664 prosrc => 'range_lower_inc' },
10665 { oid => '3852', descr => 'is the range\'s upper bound inclusive?',
10666 proname => 'upper_inc', prorettype => 'bool', proargtypes => 'anyrange',
10667 prosrc => 'range_upper_inc' },
10668 { oid => '3853', descr => 'is the range\'s lower bound infinite?',
10669 proname => 'lower_inf', prorettype => 'bool', proargtypes => 'anyrange',
10670 prosrc => 'range_lower_inf' },
10671 { oid => '3854', descr => 'is the range\'s upper bound infinite?',
10672 proname => 'upper_inf', prorettype => 'bool', proargtypes => 'anyrange',
10673 prosrc => 'range_upper_inf' },
10674 { oid => '3855',
10675 proname => 'range_eq', prorettype => 'bool',
10676 proargtypes => 'anyrange anyrange', prosrc => 'range_eq' },
10677 { oid => '3856',
10678 proname => 'range_ne', prorettype => 'bool',
10679 proargtypes => 'anyrange anyrange', prosrc => 'range_ne' },
10680 { oid => '3857',
10681 proname => 'range_overlaps', prorettype => 'bool',
10682 proargtypes => 'anyrange anyrange', prosrc => 'range_overlaps' },
10683 { oid => '3858',
10684 proname => 'range_contains_elem', prosupport => 'range_contains_elem_support',
10685 prorettype => 'bool', proargtypes => 'anyrange anyelement',
10686 prosrc => 'range_contains_elem' },
10687 { oid => '3859',
10688 proname => 'range_contains', prorettype => 'bool',
10689 proargtypes => 'anyrange anyrange', prosrc => 'range_contains' },
10690 { oid => '3860',
10691 proname => 'elem_contained_by_range',
10692 prosupport => 'elem_contained_by_range_support', prorettype => 'bool',
10693 proargtypes => 'anyelement anyrange', prosrc => 'elem_contained_by_range' },
10694 { oid => '3861',
10695 proname => 'range_contained_by', prorettype => 'bool',
10696 proargtypes => 'anyrange anyrange', prosrc => 'range_contained_by' },
10697 { oid => '3862',
10698 proname => 'range_adjacent', prorettype => 'bool',
10699 proargtypes => 'anyrange anyrange', prosrc => 'range_adjacent' },
10700 { oid => '3863',
10701 proname => 'range_before', prorettype => 'bool',
10702 proargtypes => 'anyrange anyrange', prosrc => 'range_before' },
10703 { oid => '3864',
10704 proname => 'range_after', prorettype => 'bool',
10705 proargtypes => 'anyrange anyrange', prosrc => 'range_after' },
10706 { oid => '3865',
10707 proname => 'range_overleft', prorettype => 'bool',
10708 proargtypes => 'anyrange anyrange', prosrc => 'range_overleft' },
10709 { oid => '3866',
10710 proname => 'range_overright', prorettype => 'bool',
10711 proargtypes => 'anyrange anyrange', prosrc => 'range_overright' },
10712 { oid => '3867',
10713 proname => 'range_union', prorettype => 'anyrange',
10714 proargtypes => 'anyrange anyrange', prosrc => 'range_union' },
10715 { oid => '6345', descr => 'planner support for range_contains_elem',
10716 proname => 'range_contains_elem_support', prorettype => 'internal',
10717 proargtypes => 'internal', prosrc => 'range_contains_elem_support' },
10718 { oid => '6346', descr => 'planner support for elem_contained_by_range',
10719 proname => 'elem_contained_by_range_support', prorettype => 'internal',
10720 proargtypes => 'internal', prosrc => 'elem_contained_by_range_support' },
10721 { oid => '4057',
10722 descr => 'the smallest range which includes both of the given ranges',
10723 proname => 'range_merge', prorettype => 'anyrange',
10724 proargtypes => 'anyrange anyrange', prosrc => 'range_merge' },
10725 { oid => '4228',
10726 descr => 'the smallest range which includes the whole multirange',
10727 proname => 'range_merge', prorettype => 'anyrange',
10728 proargtypes => 'anymultirange', prosrc => 'range_merge_from_multirange' },
10729 { oid => '3868',
10730 proname => 'range_intersect', prorettype => 'anyrange',
10731 proargtypes => 'anyrange anyrange', prosrc => 'range_intersect' },
10732 { oid => '3869',
10733 proname => 'range_minus', prorettype => 'anyrange',
10734 proargtypes => 'anyrange anyrange', prosrc => 'range_minus' },
10735 { oid => '3870', descr => 'less-equal-greater',
10736 proname => 'range_cmp', prorettype => 'int4',
10737 proargtypes => 'anyrange anyrange', prosrc => 'range_cmp' },
10738 { oid => '3871',
10739 proname => 'range_lt', prorettype => 'bool',
10740 proargtypes => 'anyrange anyrange', prosrc => 'range_lt' },
10741 { oid => '3872',
10742 proname => 'range_le', prorettype => 'bool',
10743 proargtypes => 'anyrange anyrange', prosrc => 'range_le' },
10744 { oid => '3873',
10745 proname => 'range_ge', prorettype => 'bool',
10746 proargtypes => 'anyrange anyrange', prosrc => 'range_ge' },
10747 { oid => '3874',
10748 proname => 'range_gt', prorettype => 'bool',
10749 proargtypes => 'anyrange anyrange', prosrc => 'range_gt' },
10750 { oid => '3875', descr => 'GiST support',
10751 proname => 'range_gist_consistent', prorettype => 'bool',
10752 proargtypes => 'internal anyrange int2 oid internal',
10753 prosrc => 'range_gist_consistent' },
10754 { oid => '3876', descr => 'GiST support',
10755 proname => 'range_gist_union', prorettype => 'anyrange',
10756 proargtypes => 'internal internal', prosrc => 'range_gist_union' },
10757 { oid => '3879', descr => 'GiST support',
10758 proname => 'range_gist_penalty', prorettype => 'internal',
10759 proargtypes => 'internal internal internal', prosrc => 'range_gist_penalty' },
10760 { oid => '3880', descr => 'GiST support',
10761 proname => 'range_gist_picksplit', prorettype => 'internal',
10762 proargtypes => 'internal internal', prosrc => 'range_gist_picksplit' },
10763 { oid => '3881', descr => 'GiST support',
10764 proname => 'range_gist_same', prorettype => 'internal',
10765 proargtypes => 'anyrange anyrange internal', prosrc => 'range_gist_same' },
10766 { oid => '6154', descr => 'GiST support',
10767 proname => 'multirange_gist_consistent', prorettype => 'bool',
10768 proargtypes => 'internal anymultirange int2 oid internal',
10769 prosrc => 'multirange_gist_consistent' },
10770 { oid => '6156', descr => 'GiST support',
10771 proname => 'multirange_gist_compress', prorettype => 'internal',
10772 proargtypes => 'internal', prosrc => 'multirange_gist_compress' },
10773 { oid => '3902', descr => 'hash a range',
10774 proname => 'hash_range', prorettype => 'int4', proargtypes => 'anyrange',
10775 prosrc => 'hash_range' },
10776 { oid => '3417', descr => 'hash a range',
10777 proname => 'hash_range_extended', prorettype => 'int8',
10778 proargtypes => 'anyrange int8', prosrc => 'hash_range_extended' },
10779 { oid => '3916', descr => 'range typanalyze',
10780 proname => 'range_typanalyze', provolatile => 's', prorettype => 'bool',
10781 proargtypes => 'internal', prosrc => 'range_typanalyze' },
10782 { oid => '3169', descr => 'restriction selectivity for range operators',
10783 proname => 'rangesel', provolatile => 's', prorettype => 'float8',
10784 proargtypes => 'internal oid internal int4', prosrc => 'rangesel' },
10785 { oid => '4401', descr => 'range aggregate by intersecting',
10786 proname => 'range_intersect_agg_transfn', prorettype => 'anyrange',
10787 proargtypes => 'anyrange anyrange', prosrc => 'range_intersect_agg_transfn' },
10788 { oid => '4450', descr => 'range aggregate by intersecting',
10789 proname => 'range_intersect_agg', prokind => 'a', proisstrict => 'f',
10790 prorettype => 'anyrange', proargtypes => 'anyrange',
10791 prosrc => 'aggregate_dummy' },
10793 { oid => '3914', descr => 'convert an int4 range to canonical form',
10794 proname => 'int4range_canonical', prorettype => 'int4range',
10795 proargtypes => 'int4range', prosrc => 'int4range_canonical' },
10796 { oid => '3928', descr => 'convert an int8 range to canonical form',
10797 proname => 'int8range_canonical', prorettype => 'int8range',
10798 proargtypes => 'int8range', prosrc => 'int8range_canonical' },
10799 { oid => '3915', descr => 'convert a date range to canonical form',
10800 proname => 'daterange_canonical', prorettype => 'daterange',
10801 proargtypes => 'daterange', prosrc => 'daterange_canonical' },
10802 { oid => '3922', descr => 'float8 difference of two int4 values',
10803 proname => 'int4range_subdiff', prorettype => 'float8',
10804 proargtypes => 'int4 int4', prosrc => 'int4range_subdiff' },
10805 { oid => '3923', descr => 'float8 difference of two int8 values',
10806 proname => 'int8range_subdiff', prorettype => 'float8',
10807 proargtypes => 'int8 int8', prosrc => 'int8range_subdiff' },
10808 { oid => '3924', descr => 'float8 difference of two numeric values',
10809 proname => 'numrange_subdiff', prorettype => 'float8',
10810 proargtypes => 'numeric numeric', prosrc => 'numrange_subdiff' },
10811 { oid => '3925', descr => 'float8 difference of two date values',
10812 proname => 'daterange_subdiff', prorettype => 'float8',
10813 proargtypes => 'date date', prosrc => 'daterange_subdiff' },
10814 { oid => '3929', descr => 'float8 difference of two timestamp values',
10815 proname => 'tsrange_subdiff', prorettype => 'float8',
10816 proargtypes => 'timestamp timestamp', prosrc => 'tsrange_subdiff' },
10817 { oid => '3930',
10818 descr => 'float8 difference of two timestamp with time zone values',
10819 proname => 'tstzrange_subdiff', prorettype => 'float8',
10820 proargtypes => 'timestamptz timestamptz', prosrc => 'tstzrange_subdiff' },
10822 { oid => '3840', descr => 'int4range constructor',
10823 proname => 'int4range', proisstrict => 'f', prorettype => 'int4range',
10824 proargtypes => 'int4 int4', prosrc => 'range_constructor2' },
10825 { oid => '3841', descr => 'int4range constructor',
10826 proname => 'int4range', proisstrict => 'f', prorettype => 'int4range',
10827 proargtypes => 'int4 int4 text', prosrc => 'range_constructor3' },
10828 { oid => '3844', descr => 'numrange constructor',
10829 proname => 'numrange', proisstrict => 'f', prorettype => 'numrange',
10830 proargtypes => 'numeric numeric', prosrc => 'range_constructor2' },
10831 { oid => '3845', descr => 'numrange constructor',
10832 proname => 'numrange', proisstrict => 'f', prorettype => 'numrange',
10833 proargtypes => 'numeric numeric text', prosrc => 'range_constructor3' },
10834 { oid => '3933', descr => 'tsrange constructor',
10835 proname => 'tsrange', proisstrict => 'f', prorettype => 'tsrange',
10836 proargtypes => 'timestamp timestamp', prosrc => 'range_constructor2' },
10837 { oid => '3934', descr => 'tsrange constructor',
10838 proname => 'tsrange', proisstrict => 'f', prorettype => 'tsrange',
10839 proargtypes => 'timestamp timestamp text', prosrc => 'range_constructor3' },
10840 { oid => '3937', descr => 'tstzrange constructor',
10841 proname => 'tstzrange', proisstrict => 'f', prorettype => 'tstzrange',
10842 proargtypes => 'timestamptz timestamptz', prosrc => 'range_constructor2' },
10843 { oid => '3938', descr => 'tstzrange constructor',
10844 proname => 'tstzrange', proisstrict => 'f', prorettype => 'tstzrange',
10845 proargtypes => 'timestamptz timestamptz text',
10846 prosrc => 'range_constructor3' },
10847 { oid => '3941', descr => 'daterange constructor',
10848 proname => 'daterange', proisstrict => 'f', prorettype => 'daterange',
10849 proargtypes => 'date date', prosrc => 'range_constructor2' },
10850 { oid => '3942', descr => 'daterange constructor',
10851 proname => 'daterange', proisstrict => 'f', prorettype => 'daterange',
10852 proargtypes => 'date date text', prosrc => 'range_constructor3' },
10853 { oid => '3945', descr => 'int8range constructor',
10854 proname => 'int8range', proisstrict => 'f', prorettype => 'int8range',
10855 proargtypes => 'int8 int8', prosrc => 'range_constructor2' },
10856 { oid => '3946', descr => 'int8range constructor',
10857 proname => 'int8range', proisstrict => 'f', prorettype => 'int8range',
10858 proargtypes => 'int8 int8 text', prosrc => 'range_constructor3' },
10860 # functions for multiranges
10861 { oid => '4229', descr => 'I/O',
10862 proname => 'anymultirange_in', provolatile => 's',
10863 prorettype => 'anymultirange', proargtypes => 'cstring oid int4',
10864 prosrc => 'anymultirange_in' },
10865 { oid => '4230', descr => 'I/O',
10866 proname => 'anymultirange_out', provolatile => 's', prorettype => 'cstring',
10867 proargtypes => 'anymultirange', prosrc => 'anymultirange_out' },
10868 { oid => '4231', descr => 'I/O',
10869 proname => 'multirange_in', provolatile => 's', prorettype => 'anymultirange',
10870 proargtypes => 'cstring oid int4', prosrc => 'multirange_in' },
10871 { oid => '4232', descr => 'I/O',
10872 proname => 'multirange_out', provolatile => 's', prorettype => 'cstring',
10873 proargtypes => 'anymultirange', prosrc => 'multirange_out' },
10874 { oid => '4233', descr => 'I/O',
10875 proname => 'multirange_recv', provolatile => 's',
10876 prorettype => 'anymultirange', proargtypes => 'internal oid int4',
10877 prosrc => 'multirange_recv' },
10878 { oid => '4234', descr => 'I/O',
10879 proname => 'multirange_send', provolatile => 's', prorettype => 'bytea',
10880 proargtypes => 'anymultirange', prosrc => 'multirange_send' },
10881 { oid => '4235', descr => 'lower bound of multirange',
10882 proname => 'lower', prorettype => 'anyelement',
10883 proargtypes => 'anymultirange', prosrc => 'multirange_lower' },
10884 { oid => '4236', descr => 'upper bound of multirange',
10885 proname => 'upper', prorettype => 'anyelement',
10886 proargtypes => 'anymultirange', prosrc => 'multirange_upper' },
10887 { oid => '4237', descr => 'is the multirange empty?',
10888 proname => 'isempty', prorettype => 'bool', proargtypes => 'anymultirange',
10889 prosrc => 'multirange_empty' },
10890 { oid => '4238', descr => 'is the multirange\'s lower bound inclusive?',
10891 proname => 'lower_inc', prorettype => 'bool', proargtypes => 'anymultirange',
10892 prosrc => 'multirange_lower_inc' },
10893 { oid => '4239', descr => 'is the multirange\'s upper bound inclusive?',
10894 proname => 'upper_inc', prorettype => 'bool', proargtypes => 'anymultirange',
10895 prosrc => 'multirange_upper_inc' },
10896 { oid => '4240', descr => 'is the multirange\'s lower bound infinite?',
10897 proname => 'lower_inf', prorettype => 'bool', proargtypes => 'anymultirange',
10898 prosrc => 'multirange_lower_inf' },
10899 { oid => '4241', descr => 'is the multirange\'s upper bound infinite?',
10900 proname => 'upper_inf', prorettype => 'bool', proargtypes => 'anymultirange',
10901 prosrc => 'multirange_upper_inf' },
10902 { oid => '4242', descr => 'multirange typanalyze',
10903 proname => 'multirange_typanalyze', provolatile => 's', prorettype => 'bool',
10904 proargtypes => 'internal', prosrc => 'multirange_typanalyze' },
10905 { oid => '4243', descr => 'restriction selectivity for multirange operators',
10906 proname => 'multirangesel', provolatile => 's', prorettype => 'float8',
10907 proargtypes => 'internal oid internal int4', prosrc => 'multirangesel' },
10908 { oid => '4244',
10909 proname => 'multirange_eq', prorettype => 'bool',
10910 proargtypes => 'anymultirange anymultirange', prosrc => 'multirange_eq' },
10911 { oid => '4245',
10912 proname => 'multirange_ne', prorettype => 'bool',
10913 proargtypes => 'anymultirange anymultirange', prosrc => 'multirange_ne' },
10914 { oid => '4246',
10915 proname => 'range_overlaps_multirange', prorettype => 'bool',
10916 proargtypes => 'anyrange anymultirange',
10917 prosrc => 'range_overlaps_multirange' },
10918 { oid => '4247',
10919 proname => 'multirange_overlaps_range', prorettype => 'bool',
10920 proargtypes => 'anymultirange anyrange',
10921 prosrc => 'multirange_overlaps_range' },
10922 { oid => '4248',
10923 proname => 'multirange_overlaps_multirange', prorettype => 'bool',
10924 proargtypes => 'anymultirange anymultirange',
10925 prosrc => 'multirange_overlaps_multirange' },
10926 { oid => '4249',
10927 proname => 'multirange_contains_elem', prorettype => 'bool',
10928 proargtypes => 'anymultirange anyelement',
10929 prosrc => 'multirange_contains_elem' },
10930 { oid => '4250',
10931 proname => 'multirange_contains_range', prorettype => 'bool',
10932 proargtypes => 'anymultirange anyrange',
10933 prosrc => 'multirange_contains_range' },
10934 { oid => '4251',
10935 proname => 'multirange_contains_multirange', prorettype => 'bool',
10936 proargtypes => 'anymultirange anymultirange',
10937 prosrc => 'multirange_contains_multirange' },
10938 { oid => '4252',
10939 proname => 'elem_contained_by_multirange', prorettype => 'bool',
10940 proargtypes => 'anyelement anymultirange',
10941 prosrc => 'elem_contained_by_multirange' },
10942 { oid => '4253',
10943 proname => 'range_contained_by_multirange', prorettype => 'bool',
10944 proargtypes => 'anyrange anymultirange',
10945 prosrc => 'range_contained_by_multirange' },
10946 { oid => '4541',
10947 proname => 'range_contains_multirange', prorettype => 'bool',
10948 proargtypes => 'anyrange anymultirange',
10949 prosrc => 'range_contains_multirange' },
10950 { oid => '4542',
10951 proname => 'multirange_contained_by_range', prorettype => 'bool',
10952 proargtypes => 'anymultirange anyrange',
10953 prosrc => 'multirange_contained_by_range' },
10954 { oid => '4254',
10955 proname => 'multirange_contained_by_multirange', prorettype => 'bool',
10956 proargtypes => 'anymultirange anymultirange',
10957 prosrc => 'multirange_contained_by_multirange' },
10958 { oid => '4255',
10959 proname => 'range_adjacent_multirange', prorettype => 'bool',
10960 proargtypes => 'anyrange anymultirange',
10961 prosrc => 'range_adjacent_multirange' },
10962 { oid => '4256',
10963 proname => 'multirange_adjacent_multirange', prorettype => 'bool',
10964 proargtypes => 'anymultirange anymultirange',
10965 prosrc => 'multirange_adjacent_multirange' },
10966 { oid => '4257',
10967 proname => 'multirange_adjacent_range', prorettype => 'bool',
10968 proargtypes => 'anymultirange anyrange',
10969 prosrc => 'multirange_adjacent_range' },
10970 { oid => '4258',
10971 proname => 'range_before_multirange', prorettype => 'bool',
10972 proargtypes => 'anyrange anymultirange',
10973 prosrc => 'range_before_multirange' },
10974 { oid => '4259',
10975 proname => 'multirange_before_range', prorettype => 'bool',
10976 proargtypes => 'anymultirange anyrange',
10977 prosrc => 'multirange_before_range' },
10978 { oid => '4260',
10979 proname => 'multirange_before_multirange', prorettype => 'bool',
10980 proargtypes => 'anymultirange anymultirange',
10981 prosrc => 'multirange_before_multirange' },
10982 { oid => '4261',
10983 proname => 'range_after_multirange', prorettype => 'bool',
10984 proargtypes => 'anyrange anymultirange', prosrc => 'range_after_multirange' },
10985 { oid => '4262',
10986 proname => 'multirange_after_range', prorettype => 'bool',
10987 proargtypes => 'anymultirange anyrange', prosrc => 'multirange_after_range' },
10988 { oid => '4263',
10989 proname => 'multirange_after_multirange', prorettype => 'bool',
10990 proargtypes => 'anymultirange anymultirange',
10991 prosrc => 'multirange_after_multirange' },
10992 { oid => '4264',
10993 proname => 'range_overleft_multirange', prorettype => 'bool',
10994 proargtypes => 'anyrange anymultirange',
10995 prosrc => 'range_overleft_multirange' },
10996 { oid => '4265',
10997 proname => 'multirange_overleft_range', prorettype => 'bool',
10998 proargtypes => 'anymultirange anyrange',
10999 prosrc => 'multirange_overleft_range' },
11000 { oid => '4266',
11001 proname => 'multirange_overleft_multirange', prorettype => 'bool',
11002 proargtypes => 'anymultirange anymultirange',
11003 prosrc => 'multirange_overleft_multirange' },
11004 { oid => '4267',
11005 proname => 'range_overright_multirange', prorettype => 'bool',
11006 proargtypes => 'anyrange anymultirange',
11007 prosrc => 'range_overright_multirange' },
11008 { oid => '4268',
11009 proname => 'multirange_overright_range', prorettype => 'bool',
11010 proargtypes => 'anymultirange anyrange',
11011 prosrc => 'multirange_overright_range' },
11012 { oid => '4269',
11013 proname => 'multirange_overright_multirange', prorettype => 'bool',
11014 proargtypes => 'anymultirange anymultirange',
11015 prosrc => 'multirange_overright_multirange' },
11016 { oid => '4270',
11017 proname => 'multirange_union', prorettype => 'anymultirange',
11018 proargtypes => 'anymultirange anymultirange', prosrc => 'multirange_union' },
11019 { oid => '4271',
11020 proname => 'multirange_minus', prorettype => 'anymultirange',
11021 proargtypes => 'anymultirange anymultirange', prosrc => 'multirange_minus' },
11022 { oid => '4272',
11023 proname => 'multirange_intersect', prorettype => 'anymultirange',
11024 proargtypes => 'anymultirange anymultirange',
11025 prosrc => 'multirange_intersect' },
11026 { oid => '4273', descr => 'less-equal-greater',
11027 proname => 'multirange_cmp', prorettype => 'int4',
11028 proargtypes => 'anymultirange anymultirange', prosrc => 'multirange_cmp' },
11029 { oid => '4274',
11030 proname => 'multirange_lt', prorettype => 'bool',
11031 proargtypes => 'anymultirange anymultirange', prosrc => 'multirange_lt' },
11032 { oid => '4275',
11033 proname => 'multirange_le', prorettype => 'bool',
11034 proargtypes => 'anymultirange anymultirange', prosrc => 'multirange_le' },
11035 { oid => '4276',
11036 proname => 'multirange_ge', prorettype => 'bool',
11037 proargtypes => 'anymultirange anymultirange', prosrc => 'multirange_ge' },
11038 { oid => '4277',
11039 proname => 'multirange_gt', prorettype => 'bool',
11040 proargtypes => 'anymultirange anymultirange', prosrc => 'multirange_gt' },
11041 { oid => '4278', descr => 'hash a multirange',
11042 proname => 'hash_multirange', prorettype => 'int4',
11043 proargtypes => 'anymultirange', prosrc => 'hash_multirange' },
11044 { oid => '4279', descr => 'hash a multirange',
11045 proname => 'hash_multirange_extended', prorettype => 'int8',
11046 proargtypes => 'anymultirange int8', prosrc => 'hash_multirange_extended' },
11048 { oid => '4280', descr => 'int4multirange constructor',
11049 proname => 'int4multirange', prorettype => 'int4multirange',
11050 proargtypes => '', prosrc => 'multirange_constructor0' },
11051 { oid => '4281', descr => 'int4multirange constructor',
11052 proname => 'int4multirange', prorettype => 'int4multirange',
11053 proargtypes => 'int4range', prosrc => 'multirange_constructor1' },
11054 { oid => '4282', descr => 'int4multirange constructor',
11055 proname => 'int4multirange', provariadic => 'int4range',
11056 prorettype => 'int4multirange', proargtypes => '_int4range',
11057 proallargtypes => '{_int4range}', proargmodes => '{v}',
11058 prosrc => 'multirange_constructor2' },
11059 { oid => '4283', descr => 'nummultirange constructor',
11060 proname => 'nummultirange', prorettype => 'nummultirange', proargtypes => '',
11061 prosrc => 'multirange_constructor0' },
11062 { oid => '4284', descr => 'nummultirange constructor',
11063 proname => 'nummultirange', prorettype => 'nummultirange',
11064 proargtypes => 'numrange', prosrc => 'multirange_constructor1' },
11065 { oid => '4285', descr => 'nummultirange constructor',
11066 proname => 'nummultirange', provariadic => 'numrange',
11067 prorettype => 'nummultirange', proargtypes => '_numrange',
11068 proallargtypes => '{_numrange}', proargmodes => '{v}',
11069 prosrc => 'multirange_constructor2' },
11070 { oid => '4286', descr => 'tsmultirange constructor',
11071 proname => 'tsmultirange', prorettype => 'tsmultirange', proargtypes => '',
11072 prosrc => 'multirange_constructor0' },
11073 { oid => '4287', descr => 'tsmultirange constructor',
11074 proname => 'tsmultirange', prorettype => 'tsmultirange',
11075 proargtypes => 'tsrange', prosrc => 'multirange_constructor1' },
11076 { oid => '4288', descr => 'tsmultirange constructor',
11077 proname => 'tsmultirange', provariadic => 'tsrange',
11078 prorettype => 'tsmultirange', proargtypes => '_tsrange',
11079 proallargtypes => '{_tsrange}', proargmodes => '{v}',
11080 prosrc => 'multirange_constructor2' },
11081 { oid => '4289', descr => 'tstzmultirange constructor',
11082 proname => 'tstzmultirange', prorettype => 'tstzmultirange',
11083 proargtypes => '', prosrc => 'multirange_constructor0' },
11084 { oid => '4290', descr => 'tstzmultirange constructor',
11085 proname => 'tstzmultirange', prorettype => 'tstzmultirange',
11086 proargtypes => 'tstzrange', prosrc => 'multirange_constructor1' },
11087 { oid => '4291', descr => 'tstzmultirange constructor',
11088 proname => 'tstzmultirange', provariadic => 'tstzrange',
11089 prorettype => 'tstzmultirange', proargtypes => '_tstzrange',
11090 proallargtypes => '{_tstzrange}', proargmodes => '{v}',
11091 prosrc => 'multirange_constructor2' },
11092 { oid => '4292', descr => 'datemultirange constructor',
11093 proname => 'datemultirange', prorettype => 'datemultirange',
11094 proargtypes => '', prosrc => 'multirange_constructor0' },
11095 { oid => '4293', descr => 'datemultirange constructor',
11096 proname => 'datemultirange', prorettype => 'datemultirange',
11097 proargtypes => 'daterange', prosrc => 'multirange_constructor1' },
11098 { oid => '4294', descr => 'datemultirange constructor',
11099 proname => 'datemultirange', provariadic => 'daterange',
11100 prorettype => 'datemultirange', proargtypes => '_daterange',
11101 proallargtypes => '{_daterange}', proargmodes => '{v}',
11102 prosrc => 'multirange_constructor2' },
11103 { oid => '4295', descr => 'int8multirange constructor',
11104 proname => 'int8multirange', prorettype => 'int8multirange',
11105 proargtypes => '', prosrc => 'multirange_constructor0' },
11106 { oid => '4296', descr => 'int8multirange constructor',
11107 proname => 'int8multirange', prorettype => 'int8multirange',
11108 proargtypes => 'int8range', prosrc => 'multirange_constructor1' },
11109 { oid => '4297', descr => 'int8multirange constructor',
11110 proname => 'int8multirange', provariadic => 'int8range',
11111 prorettype => 'int8multirange', proargtypes => '_int8range',
11112 proallargtypes => '{_int8range}', proargmodes => '{v}',
11113 prosrc => 'multirange_constructor2' },
11114 { oid => '4298', descr => 'anymultirange cast',
11115 proname => 'multirange', prorettype => 'anymultirange',
11116 proargtypes => 'anyrange', prosrc => 'multirange_constructor1' },
11117 { oid => '4299', descr => 'aggregate transition function',
11118 proname => 'range_agg_transfn', proisstrict => 'f', prorettype => 'internal',
11119 proargtypes => 'internal anyrange', prosrc => 'range_agg_transfn' },
11120 { oid => '4300', descr => 'aggregate final function',
11121 proname => 'range_agg_finalfn', proisstrict => 'f',
11122 prorettype => 'anymultirange', proargtypes => 'internal anyrange',
11123 prosrc => 'range_agg_finalfn' },
11124 { oid => '4301', descr => 'combine aggregate input into a multirange',
11125 proname => 'range_agg', prokind => 'a', proisstrict => 'f',
11126 prorettype => 'anymultirange', proargtypes => 'anyrange',
11127 prosrc => 'aggregate_dummy' },
11128 { oid => '6225', descr => 'aggregate transition function',
11129 proname => 'multirange_agg_transfn', proisstrict => 'f',
11130 prorettype => 'internal', proargtypes => 'internal anymultirange',
11131 prosrc => 'multirange_agg_transfn' },
11132 { oid => '6226', descr => 'aggregate final function',
11133 proname => 'multirange_agg_finalfn', proisstrict => 'f',
11134 prorettype => 'anymultirange', proargtypes => 'internal anymultirange',
11135 prosrc => 'range_agg_finalfn' },
11136 { oid => '6227', descr => 'combine aggregate input into a multirange',
11137 proname => 'range_agg', prokind => 'a', proisstrict => 'f',
11138 prorettype => 'anymultirange', proargtypes => 'anymultirange',
11139 prosrc => 'aggregate_dummy' },
11140 { oid => '4388', descr => 'range aggregate by intersecting',
11141 proname => 'multirange_intersect_agg_transfn', prorettype => 'anymultirange',
11142 proargtypes => 'anymultirange anymultirange',
11143 prosrc => 'multirange_intersect_agg_transfn' },
11144 { oid => '4389', descr => 'range aggregate by intersecting',
11145 proname => 'range_intersect_agg', prokind => 'a', proisstrict => 'f',
11146 prorettype => 'anymultirange', proargtypes => 'anymultirange',
11147 prosrc => 'aggregate_dummy' },
11148 { oid => '1293', descr => 'expand multirange to set of ranges',
11149 proname => 'unnest', prorows => '100', proretset => 't',
11150 prorettype => 'anyrange', proargtypes => 'anymultirange',
11151 prosrc => 'multirange_unnest' },
11153 # date, time, timestamp constructors
11154 { oid => '3846', descr => 'construct date',
11155 proname => 'make_date', prorettype => 'date', proargtypes => 'int4 int4 int4',
11156 proargnames => '{year,month,day}', prosrc => 'make_date' },
11157 { oid => '3847', descr => 'construct time',
11158 proname => 'make_time', prorettype => 'time',
11159 proargtypes => 'int4 int4 float8', proargnames => '{hour,min,sec}',
11160 prosrc => 'make_time' },
11161 { oid => '3461', descr => 'construct timestamp',
11162 proname => 'make_timestamp', prorettype => 'timestamp',
11163 proargtypes => 'int4 int4 int4 int4 int4 float8',
11164 proargnames => '{year,month,mday,hour,min,sec}', prosrc => 'make_timestamp' },
11165 { oid => '3462', descr => 'construct timestamp with time zone',
11166 proname => 'make_timestamptz', provolatile => 's',
11167 prorettype => 'timestamptz', proargtypes => 'int4 int4 int4 int4 int4 float8',
11168 proargnames => '{year,month,mday,hour,min,sec}',
11169 prosrc => 'make_timestamptz' },
11170 { oid => '3463', descr => 'construct timestamp with time zone',
11171 proname => 'make_timestamptz', provolatile => 's',
11172 prorettype => 'timestamptz',
11173 proargtypes => 'int4 int4 int4 int4 int4 float8 text',
11174 proargnames => '{year,month,mday,hour,min,sec,timezone}',
11175 prosrc => 'make_timestamptz_at_timezone' },
11176 { oid => '3464', descr => 'construct interval',
11177 proname => 'make_interval', prorettype => 'interval',
11178 proargtypes => 'int4 int4 int4 int4 int4 int4 float8',
11179 proargnames => '{years,months,weeks,days,hours,mins,secs}',
11180 prosrc => 'make_interval' },
11182 # spgist opclasses
11183 { oid => '4018', descr => 'SP-GiST support for quad tree over point',
11184 proname => 'spg_quad_config', prorettype => 'void',
11185 proargtypes => 'internal internal', prosrc => 'spg_quad_config' },
11186 { oid => '4019', descr => 'SP-GiST support for quad tree over point',
11187 proname => 'spg_quad_choose', prorettype => 'void',
11188 proargtypes => 'internal internal', prosrc => 'spg_quad_choose' },
11189 { oid => '4020', descr => 'SP-GiST support for quad tree over point',
11190 proname => 'spg_quad_picksplit', prorettype => 'void',
11191 proargtypes => 'internal internal', prosrc => 'spg_quad_picksplit' },
11192 { oid => '4021', descr => 'SP-GiST support for quad tree over point',
11193 proname => 'spg_quad_inner_consistent', prorettype => 'void',
11194 proargtypes => 'internal internal', prosrc => 'spg_quad_inner_consistent' },
11195 { oid => '4022',
11196 descr => 'SP-GiST support for quad tree and k-d tree over point',
11197 proname => 'spg_quad_leaf_consistent', prorettype => 'bool',
11198 proargtypes => 'internal internal', prosrc => 'spg_quad_leaf_consistent' },
11200 { oid => '4023', descr => 'SP-GiST support for k-d tree over point',
11201 proname => 'spg_kd_config', prorettype => 'void',
11202 proargtypes => 'internal internal', prosrc => 'spg_kd_config' },
11203 { oid => '4024', descr => 'SP-GiST support for k-d tree over point',
11204 proname => 'spg_kd_choose', prorettype => 'void',
11205 proargtypes => 'internal internal', prosrc => 'spg_kd_choose' },
11206 { oid => '4025', descr => 'SP-GiST support for k-d tree over point',
11207 proname => 'spg_kd_picksplit', prorettype => 'void',
11208 proargtypes => 'internal internal', prosrc => 'spg_kd_picksplit' },
11209 { oid => '4026', descr => 'SP-GiST support for k-d tree over point',
11210 proname => 'spg_kd_inner_consistent', prorettype => 'void',
11211 proargtypes => 'internal internal', prosrc => 'spg_kd_inner_consistent' },
11213 { oid => '4027', descr => 'SP-GiST support for radix tree over text',
11214 proname => 'spg_text_config', prorettype => 'void',
11215 proargtypes => 'internal internal', prosrc => 'spg_text_config' },
11216 { oid => '4028', descr => 'SP-GiST support for radix tree over text',
11217 proname => 'spg_text_choose', prorettype => 'void',
11218 proargtypes => 'internal internal', prosrc => 'spg_text_choose' },
11219 { oid => '4029', descr => 'SP-GiST support for radix tree over text',
11220 proname => 'spg_text_picksplit', prorettype => 'void',
11221 proargtypes => 'internal internal', prosrc => 'spg_text_picksplit' },
11222 { oid => '4030', descr => 'SP-GiST support for radix tree over text',
11223 proname => 'spg_text_inner_consistent', prorettype => 'void',
11224 proargtypes => 'internal internal', prosrc => 'spg_text_inner_consistent' },
11225 { oid => '4031', descr => 'SP-GiST support for radix tree over text',
11226 proname => 'spg_text_leaf_consistent', prorettype => 'bool',
11227 proargtypes => 'internal internal', prosrc => 'spg_text_leaf_consistent' },
11229 { oid => '3469', descr => 'SP-GiST support for quad tree over range',
11230 proname => 'spg_range_quad_config', prorettype => 'void',
11231 proargtypes => 'internal internal', prosrc => 'spg_range_quad_config' },
11232 { oid => '3470', descr => 'SP-GiST support for quad tree over range',
11233 proname => 'spg_range_quad_choose', prorettype => 'void',
11234 proargtypes => 'internal internal', prosrc => 'spg_range_quad_choose' },
11235 { oid => '3471', descr => 'SP-GiST support for quad tree over range',
11236 proname => 'spg_range_quad_picksplit', prorettype => 'void',
11237 proargtypes => 'internal internal', prosrc => 'spg_range_quad_picksplit' },
11238 { oid => '3472', descr => 'SP-GiST support for quad tree over range',
11239 proname => 'spg_range_quad_inner_consistent', prorettype => 'void',
11240 proargtypes => 'internal internal',
11241 prosrc => 'spg_range_quad_inner_consistent' },
11242 { oid => '3473', descr => 'SP-GiST support for quad tree over range',
11243 proname => 'spg_range_quad_leaf_consistent', prorettype => 'bool',
11244 proargtypes => 'internal internal',
11245 prosrc => 'spg_range_quad_leaf_consistent' },
11247 { oid => '5012', descr => 'SP-GiST support for quad tree over box',
11248 proname => 'spg_box_quad_config', prorettype => 'void',
11249 proargtypes => 'internal internal', prosrc => 'spg_box_quad_config' },
11250 { oid => '5013', descr => 'SP-GiST support for quad tree over box',
11251 proname => 'spg_box_quad_choose', prorettype => 'void',
11252 proargtypes => 'internal internal', prosrc => 'spg_box_quad_choose' },
11253 { oid => '5014', descr => 'SP-GiST support for quad tree over box',
11254 proname => 'spg_box_quad_picksplit', prorettype => 'void',
11255 proargtypes => 'internal internal', prosrc => 'spg_box_quad_picksplit' },
11256 { oid => '5015', descr => 'SP-GiST support for quad tree over box',
11257 proname => 'spg_box_quad_inner_consistent', prorettype => 'void',
11258 proargtypes => 'internal internal',
11259 prosrc => 'spg_box_quad_inner_consistent' },
11260 { oid => '5016', descr => 'SP-GiST support for quad tree over box',
11261 proname => 'spg_box_quad_leaf_consistent', prorettype => 'bool',
11262 proargtypes => 'internal internal',
11263 prosrc => 'spg_box_quad_leaf_consistent' },
11265 { oid => '5010',
11266 descr => 'SP-GiST support for quad tree over 2-D types represented by their bounding boxes',
11267 proname => 'spg_bbox_quad_config', prorettype => 'void',
11268 proargtypes => 'internal internal', prosrc => 'spg_bbox_quad_config' },
11269 { oid => '5011', descr => 'SP-GiST support for quad tree over polygons',
11270 proname => 'spg_poly_quad_compress', prorettype => 'box',
11271 proargtypes => 'polygon', prosrc => 'spg_poly_quad_compress' },
11273 # replication slots
11274 { oid => '3779', descr => 'create a physical replication slot',
11275 proname => 'pg_create_physical_replication_slot', provolatile => 'v',
11276 proparallel => 'u', prorettype => 'record', proargtypes => 'name bool bool',
11277 proallargtypes => '{name,bool,bool,name,pg_lsn}',
11278 proargmodes => '{i,i,i,o,o}',
11279 proargnames => '{slot_name,immediately_reserve,temporary,slot_name,lsn}',
11280 prosrc => 'pg_create_physical_replication_slot' },
11281 { oid => '4220',
11282 descr => 'copy a physical replication slot, changing temporality',
11283 proname => 'pg_copy_physical_replication_slot', provolatile => 'v',
11284 proparallel => 'u', prorettype => 'record', proargtypes => 'name name bool',
11285 proallargtypes => '{name,name,bool,name,pg_lsn}',
11286 proargmodes => '{i,i,i,o,o}',
11287 proargnames => '{src_slot_name,dst_slot_name,temporary,slot_name,lsn}',
11288 prosrc => 'pg_copy_physical_replication_slot_a' },
11289 { oid => '4221', descr => 'copy a physical replication slot',
11290 proname => 'pg_copy_physical_replication_slot', provolatile => 'v',
11291 proparallel => 'u', prorettype => 'record', proargtypes => 'name name',
11292 proallargtypes => '{name,name,name,pg_lsn}', proargmodes => '{i,i,o,o}',
11293 proargnames => '{src_slot_name,dst_slot_name,slot_name,lsn}',
11294 prosrc => 'pg_copy_physical_replication_slot_b' },
11295 { oid => '3780', descr => 'drop a replication slot',
11296 proname => 'pg_drop_replication_slot', provolatile => 'v', proparallel => 'u',
11297 prorettype => 'void', proargtypes => 'name',
11298 prosrc => 'pg_drop_replication_slot' },
11299 { oid => '3781',
11300 descr => 'information about replication slots currently in use',
11301 proname => 'pg_get_replication_slots', prorows => '10', proisstrict => 'f',
11302 proretset => 't', provolatile => 's', prorettype => 'record',
11303 proargtypes => '',
11304 proallargtypes => '{name,name,text,oid,bool,bool,int4,xid,xid,pg_lsn,pg_lsn,text,int8,bool,timestamptz,bool,text,bool,bool}',
11305 proargmodes => '{o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o}',
11306 proargnames => '{slot_name,plugin,slot_type,datoid,temporary,active,active_pid,xmin,catalog_xmin,restart_lsn,confirmed_flush_lsn,wal_status,safe_wal_size,two_phase,inactive_since,conflicting,invalidation_reason,failover,synced}',
11307 prosrc => 'pg_get_replication_slots' },
11308 { oid => '3786', descr => 'set up a logical replication slot',
11309 proname => 'pg_create_logical_replication_slot', provolatile => 'v',
11310 proparallel => 'u', prorettype => 'record',
11311 proargtypes => 'name name bool bool bool',
11312 proallargtypes => '{name,name,bool,bool,bool,name,pg_lsn}',
11313 proargmodes => '{i,i,i,i,i,o,o}',
11314 proargnames => '{slot_name,plugin,temporary,twophase,failover,slot_name,lsn}',
11315 prosrc => 'pg_create_logical_replication_slot' },
11316 { oid => '4222',
11317 descr => 'copy a logical replication slot, changing temporality and plugin',
11318 proname => 'pg_copy_logical_replication_slot', provolatile => 'v',
11319 proparallel => 'u', prorettype => 'record',
11320 proargtypes => 'name name bool name',
11321 proallargtypes => '{name,name,bool,name,name,pg_lsn}',
11322 proargmodes => '{i,i,i,i,o,o}',
11323 proargnames => '{src_slot_name,dst_slot_name,temporary,plugin,slot_name,lsn}',
11324 prosrc => 'pg_copy_logical_replication_slot_a' },
11325 { oid => '4223',
11326 descr => 'copy a logical replication slot, changing temporality',
11327 proname => 'pg_copy_logical_replication_slot', provolatile => 'v',
11328 proparallel => 'u', prorettype => 'record', proargtypes => 'name name bool',
11329 proallargtypes => '{name,name,bool,name,pg_lsn}',
11330 proargmodes => '{i,i,i,o,o}',
11331 proargnames => '{src_slot_name,dst_slot_name,temporary,slot_name,lsn}',
11332 prosrc => 'pg_copy_logical_replication_slot_b' },
11333 { oid => '4224', descr => 'copy a logical replication slot',
11334 proname => 'pg_copy_logical_replication_slot', provolatile => 'v',
11335 proparallel => 'u', prorettype => 'record', proargtypes => 'name name',
11336 proallargtypes => '{name,name,name,pg_lsn}', proargmodes => '{i,i,o,o}',
11337 proargnames => '{src_slot_name,dst_slot_name,slot_name,lsn}',
11338 prosrc => 'pg_copy_logical_replication_slot_c' },
11339 { oid => '3782', descr => 'get changes from replication slot',
11340 proname => 'pg_logical_slot_get_changes', procost => '1000',
11341 prorows => '1000', provariadic => 'text', proisstrict => 'f',
11342 proretset => 't', provolatile => 'v', proparallel => 'u',
11343 prorettype => 'record', proargtypes => 'name pg_lsn int4 _text',
11344 proallargtypes => '{name,pg_lsn,int4,_text,pg_lsn,xid,text}',
11345 proargmodes => '{i,i,i,v,o,o,o}',
11346 proargnames => '{slot_name,upto_lsn,upto_nchanges,options,lsn,xid,data}',
11347 prosrc => 'pg_logical_slot_get_changes' },
11348 { oid => '3783', descr => 'get binary changes from replication slot',
11349 proname => 'pg_logical_slot_get_binary_changes', procost => '1000',
11350 prorows => '1000', provariadic => 'text', proisstrict => 'f',
11351 proretset => 't', provolatile => 'v', proparallel => 'u',
11352 prorettype => 'record', proargtypes => 'name pg_lsn int4 _text',
11353 proallargtypes => '{name,pg_lsn,int4,_text,pg_lsn,xid,bytea}',
11354 proargmodes => '{i,i,i,v,o,o,o}',
11355 proargnames => '{slot_name,upto_lsn,upto_nchanges,options,lsn,xid,data}',
11356 prosrc => 'pg_logical_slot_get_binary_changes' },
11357 { oid => '3784', descr => 'peek at changes from replication slot',
11358 proname => 'pg_logical_slot_peek_changes', procost => '1000',
11359 prorows => '1000', provariadic => 'text', proisstrict => 'f',
11360 proretset => 't', provolatile => 'v', proparallel => 'u',
11361 prorettype => 'record', proargtypes => 'name pg_lsn int4 _text',
11362 proallargtypes => '{name,pg_lsn,int4,_text,pg_lsn,xid,text}',
11363 proargmodes => '{i,i,i,v,o,o,o}',
11364 proargnames => '{slot_name,upto_lsn,upto_nchanges,options,lsn,xid,data}',
11365 prosrc => 'pg_logical_slot_peek_changes' },
11366 { oid => '3785', descr => 'peek at binary changes from replication slot',
11367 proname => 'pg_logical_slot_peek_binary_changes', procost => '1000',
11368 prorows => '1000', provariadic => 'text', proisstrict => 'f',
11369 proretset => 't', provolatile => 'v', proparallel => 'u',
11370 prorettype => 'record', proargtypes => 'name pg_lsn int4 _text',
11371 proallargtypes => '{name,pg_lsn,int4,_text,pg_lsn,xid,bytea}',
11372 proargmodes => '{i,i,i,v,o,o,o}',
11373 proargnames => '{slot_name,upto_lsn,upto_nchanges,options,lsn,xid,data}',
11374 prosrc => 'pg_logical_slot_peek_binary_changes' },
11375 { oid => '3878', descr => 'advance logical replication slot',
11376 proname => 'pg_replication_slot_advance', provolatile => 'v',
11377 proparallel => 'u', prorettype => 'record', proargtypes => 'name pg_lsn',
11378 proallargtypes => '{name,pg_lsn,name,pg_lsn}', proargmodes => '{i,i,o,o}',
11379 proargnames => '{slot_name,upto_lsn,slot_name,end_lsn}',
11380 prosrc => 'pg_replication_slot_advance' },
11381 { oid => '3577', descr => 'emit a textual logical decoding message',
11382 proname => 'pg_logical_emit_message', provolatile => 'v', proparallel => 'u',
11383 prorettype => 'pg_lsn', proargtypes => 'bool text text bool',
11384 prosrc => 'pg_logical_emit_message_text' },
11385 { oid => '3578', descr => 'emit a binary logical decoding message',
11386 proname => 'pg_logical_emit_message', provolatile => 'v', proparallel => 'u',
11387 prorettype => 'pg_lsn', proargtypes => 'bool text bytea bool',
11388 prosrc => 'pg_logical_emit_message_bytea' },
11389 { oid => '6344',
11390 descr => 'sync replication slots from the primary to the standby',
11391 proname => 'pg_sync_replication_slots', provolatile => 'v',
11392 proparallel => 'u', prorettype => 'void', proargtypes => '',
11393 prosrc => 'pg_sync_replication_slots' },
11395 # event triggers
11396 { oid => '3566', descr => 'list objects dropped by the current command',
11397 proname => 'pg_event_trigger_dropped_objects', procost => '10',
11398 prorows => '100', proretset => 't', provolatile => 's', proparallel => 'r',
11399 prorettype => 'record', proargtypes => '',
11400 proallargtypes => '{oid,oid,int4,bool,bool,bool,text,text,text,text,_text,_text}',
11401 proargmodes => '{o,o,o,o,o,o,o,o,o,o,o,o}',
11402 proargnames => '{classid, objid, objsubid, original, normal, is_temporary, object_type, schema_name, object_name, object_identity, address_names, address_args}',
11403 prosrc => 'pg_event_trigger_dropped_objects' },
11404 { oid => '4566', descr => 'return Oid of the table getting rewritten',
11405 proname => 'pg_event_trigger_table_rewrite_oid', provolatile => 's',
11406 proparallel => 'r', prorettype => 'oid', proargtypes => '',
11407 proallargtypes => '{oid}', proargmodes => '{o}', proargnames => '{oid}',
11408 prosrc => 'pg_event_trigger_table_rewrite_oid' },
11409 { oid => '4567', descr => 'return reason code for table getting rewritten',
11410 proname => 'pg_event_trigger_table_rewrite_reason', provolatile => 's',
11411 proparallel => 'r', prorettype => 'int4', proargtypes => '',
11412 prosrc => 'pg_event_trigger_table_rewrite_reason' },
11413 { oid => '4568',
11414 descr => 'list DDL actions being executed by the current command',
11415 proname => 'pg_event_trigger_ddl_commands', procost => '10', prorows => '100',
11416 proretset => 't', provolatile => 's', proparallel => 'r',
11417 prorettype => 'record', proargtypes => '',
11418 proallargtypes => '{oid,oid,int4,text,text,text,text,bool,pg_ddl_command}',
11419 proargmodes => '{o,o,o,o,o,o,o,o,o}',
11420 proargnames => '{classid, objid, objsubid, command_tag, object_type, schema_name, object_identity, in_extension, command}',
11421 prosrc => 'pg_event_trigger_ddl_commands' },
11423 # generic transition functions for ordered-set aggregates
11424 { oid => '3970', descr => 'aggregate transition function',
11425 proname => 'ordered_set_transition', proisstrict => 'f',
11426 prorettype => 'internal', proargtypes => 'internal any',
11427 prosrc => 'ordered_set_transition' },
11428 { oid => '3971', descr => 'aggregate transition function',
11429 proname => 'ordered_set_transition_multi', provariadic => 'any',
11430 proisstrict => 'f', prorettype => 'internal', proargtypes => 'internal any',
11431 proallargtypes => '{internal,any}', proargmodes => '{i,v}',
11432 prosrc => 'ordered_set_transition_multi' },
11434 # inverse distribution aggregates (and their support functions)
11435 { oid => '3972', descr => 'discrete percentile',
11436 proname => 'percentile_disc', prokind => 'a', proisstrict => 'f',
11437 prorettype => 'anyelement', proargtypes => 'float8 anyelement',
11438 prosrc => 'aggregate_dummy' },
11439 { oid => '3973', descr => 'aggregate final function',
11440 proname => 'percentile_disc_final', proisstrict => 'f',
11441 prorettype => 'anyelement', proargtypes => 'internal float8 anyelement',
11442 prosrc => 'percentile_disc_final' },
11443 { oid => '3974', descr => 'continuous distribution percentile',
11444 proname => 'percentile_cont', prokind => 'a', proisstrict => 'f',
11445 prorettype => 'float8', proargtypes => 'float8 float8',
11446 prosrc => 'aggregate_dummy' },
11447 { oid => '3975', descr => 'aggregate final function',
11448 proname => 'percentile_cont_float8_final', proisstrict => 'f',
11449 prorettype => 'float8', proargtypes => 'internal float8',
11450 prosrc => 'percentile_cont_float8_final' },
11451 { oid => '3976', descr => 'continuous distribution percentile',
11452 proname => 'percentile_cont', prokind => 'a', proisstrict => 'f',
11453 prorettype => 'interval', proargtypes => 'float8 interval',
11454 prosrc => 'aggregate_dummy' },
11455 { oid => '3977', descr => 'aggregate final function',
11456 proname => 'percentile_cont_interval_final', proisstrict => 'f',
11457 prorettype => 'interval', proargtypes => 'internal float8',
11458 prosrc => 'percentile_cont_interval_final' },
11459 { oid => '3978', descr => 'multiple discrete percentiles',
11460 proname => 'percentile_disc', prokind => 'a', proisstrict => 'f',
11461 prorettype => 'anyarray', proargtypes => '_float8 anyelement',
11462 prosrc => 'aggregate_dummy' },
11463 { oid => '3979', descr => 'aggregate final function',
11464 proname => 'percentile_disc_multi_final', proisstrict => 'f',
11465 prorettype => 'anyarray', proargtypes => 'internal _float8 anyelement',
11466 prosrc => 'percentile_disc_multi_final' },
11467 { oid => '3980', descr => 'multiple continuous percentiles',
11468 proname => 'percentile_cont', prokind => 'a', proisstrict => 'f',
11469 prorettype => '_float8', proargtypes => '_float8 float8',
11470 prosrc => 'aggregate_dummy' },
11471 { oid => '3981', descr => 'aggregate final function',
11472 proname => 'percentile_cont_float8_multi_final', proisstrict => 'f',
11473 prorettype => '_float8', proargtypes => 'internal _float8',
11474 prosrc => 'percentile_cont_float8_multi_final' },
11475 { oid => '3982', descr => 'multiple continuous percentiles',
11476 proname => 'percentile_cont', prokind => 'a', proisstrict => 'f',
11477 prorettype => '_interval', proargtypes => '_float8 interval',
11478 prosrc => 'aggregate_dummy' },
11479 { oid => '3983', descr => 'aggregate final function',
11480 proname => 'percentile_cont_interval_multi_final', proisstrict => 'f',
11481 prorettype => '_interval', proargtypes => 'internal _float8',
11482 prosrc => 'percentile_cont_interval_multi_final' },
11483 { oid => '3984', descr => 'most common value',
11484 proname => 'mode', prokind => 'a', proisstrict => 'f',
11485 prorettype => 'anyelement', proargtypes => 'anyelement',
11486 prosrc => 'aggregate_dummy' },
11487 { oid => '3985', descr => 'aggregate final function',
11488 proname => 'mode_final', proisstrict => 'f', prorettype => 'anyelement',
11489 proargtypes => 'internal anyelement', prosrc => 'mode_final' },
11491 # hypothetical-set aggregates (and their support functions)
11492 { oid => '3986', descr => 'rank of hypothetical row',
11493 proname => 'rank', provariadic => 'any', prokind => 'a', proisstrict => 'f',
11494 prorettype => 'int8', proargtypes => 'any', proallargtypes => '{any}',
11495 proargmodes => '{v}', prosrc => 'aggregate_dummy' },
11496 { oid => '3987', descr => 'aggregate final function',
11497 proname => 'rank_final', provariadic => 'any', proisstrict => 'f',
11498 prorettype => 'int8', proargtypes => 'internal any',
11499 proallargtypes => '{internal,any}', proargmodes => '{i,v}',
11500 prosrc => 'hypothetical_rank_final' },
11501 { oid => '3988', descr => 'fractional rank of hypothetical row',
11502 proname => 'percent_rank', provariadic => 'any', prokind => 'a',
11503 proisstrict => 'f', prorettype => 'float8', proargtypes => 'any',
11504 proallargtypes => '{any}', proargmodes => '{v}',
11505 prosrc => 'aggregate_dummy' },
11506 { oid => '3989', descr => 'aggregate final function',
11507 proname => 'percent_rank_final', provariadic => 'any', proisstrict => 'f',
11508 prorettype => 'float8', proargtypes => 'internal any',
11509 proallargtypes => '{internal,any}', proargmodes => '{i,v}',
11510 prosrc => 'hypothetical_percent_rank_final' },
11511 { oid => '3990', descr => 'cumulative distribution of hypothetical row',
11512 proname => 'cume_dist', provariadic => 'any', prokind => 'a',
11513 proisstrict => 'f', prorettype => 'float8', proargtypes => 'any',
11514 proallargtypes => '{any}', proargmodes => '{v}',
11515 prosrc => 'aggregate_dummy' },
11516 { oid => '3991', descr => 'aggregate final function',
11517 proname => 'cume_dist_final', provariadic => 'any', proisstrict => 'f',
11518 prorettype => 'float8', proargtypes => 'internal any',
11519 proallargtypes => '{internal,any}', proargmodes => '{i,v}',
11520 prosrc => 'hypothetical_cume_dist_final' },
11521 { oid => '3992', descr => 'rank of hypothetical row without gaps',
11522 proname => 'dense_rank', provariadic => 'any', prokind => 'a',
11523 proisstrict => 'f', prorettype => 'int8', proargtypes => 'any',
11524 proallargtypes => '{any}', proargmodes => '{v}',
11525 prosrc => 'aggregate_dummy' },
11526 { oid => '3993', descr => 'aggregate final function',
11527 proname => 'dense_rank_final', provariadic => 'any', proisstrict => 'f',
11528 prorettype => 'int8', proargtypes => 'internal any',
11529 proallargtypes => '{internal,any}', proargmodes => '{i,v}',
11530 prosrc => 'hypothetical_dense_rank_final' },
11532 # pg_upgrade support
11533 { oid => '3582', descr => 'for use by pg_upgrade',
11534 proname => 'binary_upgrade_set_next_pg_type_oid', provolatile => 'v',
11535 proparallel => 'r', prorettype => 'void', proargtypes => 'oid',
11536 prosrc => 'binary_upgrade_set_next_pg_type_oid' },
11537 { oid => '3584', descr => 'for use by pg_upgrade',
11538 proname => 'binary_upgrade_set_next_array_pg_type_oid', provolatile => 'v',
11539 proparallel => 'r', prorettype => 'void', proargtypes => 'oid',
11540 prosrc => 'binary_upgrade_set_next_array_pg_type_oid' },
11541 { oid => '4390', descr => 'for use by pg_upgrade',
11542 proname => 'binary_upgrade_set_next_multirange_pg_type_oid',
11543 provolatile => 'v', proparallel => 'r', prorettype => 'void',
11544 proargtypes => 'oid',
11545 prosrc => 'binary_upgrade_set_next_multirange_pg_type_oid' },
11546 { oid => '4391', descr => 'for use by pg_upgrade',
11547 proname => 'binary_upgrade_set_next_multirange_array_pg_type_oid',
11548 provolatile => 'v', proparallel => 'r', prorettype => 'void',
11549 proargtypes => 'oid',
11550 prosrc => 'binary_upgrade_set_next_multirange_array_pg_type_oid' },
11551 { oid => '3586', descr => 'for use by pg_upgrade',
11552 proname => 'binary_upgrade_set_next_heap_pg_class_oid', provolatile => 'v',
11553 proparallel => 'r', prorettype => 'void', proargtypes => 'oid',
11554 prosrc => 'binary_upgrade_set_next_heap_pg_class_oid' },
11555 { oid => '3587', descr => 'for use by pg_upgrade',
11556 proname => 'binary_upgrade_set_next_index_pg_class_oid', provolatile => 'v',
11557 proparallel => 'r', prorettype => 'void', proargtypes => 'oid',
11558 prosrc => 'binary_upgrade_set_next_index_pg_class_oid' },
11559 { oid => '3588', descr => 'for use by pg_upgrade',
11560 proname => 'binary_upgrade_set_next_toast_pg_class_oid', provolatile => 'v',
11561 proparallel => 'r', prorettype => 'void', proargtypes => 'oid',
11562 prosrc => 'binary_upgrade_set_next_toast_pg_class_oid' },
11563 { oid => '3589', descr => 'for use by pg_upgrade',
11564 proname => 'binary_upgrade_set_next_pg_enum_oid', provolatile => 'v',
11565 proparallel => 'r', prorettype => 'void', proargtypes => 'oid',
11566 prosrc => 'binary_upgrade_set_next_pg_enum_oid' },
11567 { oid => '3590', descr => 'for use by pg_upgrade',
11568 proname => 'binary_upgrade_set_next_pg_authid_oid', provolatile => 'v',
11569 proparallel => 'r', prorettype => 'void', proargtypes => 'oid',
11570 prosrc => 'binary_upgrade_set_next_pg_authid_oid' },
11571 { oid => '3591', descr => 'for use by pg_upgrade',
11572 proname => 'binary_upgrade_create_empty_extension', proisstrict => 'f',
11573 provolatile => 'v', proparallel => 'u', prorettype => 'void',
11574 proargtypes => 'text text bool text _oid _text _text',
11575 prosrc => 'binary_upgrade_create_empty_extension' },
11576 { oid => '4083', descr => 'for use by pg_upgrade',
11577 proname => 'binary_upgrade_set_record_init_privs', provolatile => 'v',
11578 proparallel => 'r', prorettype => 'void', proargtypes => 'bool',
11579 prosrc => 'binary_upgrade_set_record_init_privs' },
11580 { oid => '4101', descr => 'for use by pg_upgrade',
11581 proname => 'binary_upgrade_set_missing_value', provolatile => 'v',
11582 proparallel => 'u', prorettype => 'void', proargtypes => 'oid text text',
11583 prosrc => 'binary_upgrade_set_missing_value' },
11584 { oid => '4545', descr => 'for use by pg_upgrade',
11585 proname => 'binary_upgrade_set_next_heap_relfilenode', provolatile => 'v',
11586 proparallel => 'u', prorettype => 'void', proargtypes => 'oid',
11587 prosrc => 'binary_upgrade_set_next_heap_relfilenode' },
11588 { oid => '4546', descr => 'for use by pg_upgrade',
11589 proname => 'binary_upgrade_set_next_index_relfilenode', provolatile => 'v',
11590 proparallel => 'u', prorettype => 'void', proargtypes => 'oid',
11591 prosrc => 'binary_upgrade_set_next_index_relfilenode' },
11592 { oid => '4547', descr => 'for use by pg_upgrade',
11593 proname => 'binary_upgrade_set_next_toast_relfilenode', provolatile => 'v',
11594 proparallel => 'u', prorettype => 'void', proargtypes => 'oid',
11595 prosrc => 'binary_upgrade_set_next_toast_relfilenode' },
11596 { oid => '4548', descr => 'for use by pg_upgrade',
11597 proname => 'binary_upgrade_set_next_pg_tablespace_oid', provolatile => 'v',
11598 proparallel => 'u', prorettype => 'void', proargtypes => 'oid',
11599 prosrc => 'binary_upgrade_set_next_pg_tablespace_oid' },
11600 { oid => '6312', descr => 'for use by pg_upgrade',
11601 proname => 'binary_upgrade_logical_slot_has_caught_up', provolatile => 'v',
11602 proparallel => 'u', prorettype => 'bool', proargtypes => 'name',
11603 prosrc => 'binary_upgrade_logical_slot_has_caught_up' },
11604 { oid => '6319',
11605 descr => 'for use by pg_upgrade (relation for pg_subscription_rel)',
11606 proname => 'binary_upgrade_add_sub_rel_state', proisstrict => 'f',
11607 provolatile => 'v', proparallel => 'u', prorettype => 'void',
11608 proargtypes => 'text oid char pg_lsn',
11609 prosrc => 'binary_upgrade_add_sub_rel_state' },
11610 { oid => '6320', descr => 'for use by pg_upgrade (remote_lsn for origin)',
11611 proname => 'binary_upgrade_replorigin_advance', proisstrict => 'f',
11612 provolatile => 'v', proparallel => 'u', prorettype => 'void',
11613 proargtypes => 'text pg_lsn', prosrc => 'binary_upgrade_replorigin_advance' },
11615 # conversion functions
11616 { oid => '4302',
11617 descr => 'internal conversion function for KOI8R to MULE_INTERNAL',
11618 proname => 'koi8r_to_mic', prolang => 'c', prorettype => 'int4',
11619 proargtypes => 'int4 int4 cstring internal int4 bool',
11620 prosrc => 'koi8r_to_mic', probin => '$libdir/cyrillic_and_mic' },
11621 { oid => '4303',
11622 descr => 'internal conversion function for MULE_INTERNAL to KOI8R',
11623 proname => 'mic_to_koi8r', prolang => 'c', prorettype => 'int4',
11624 proargtypes => 'int4 int4 cstring internal int4 bool',
11625 prosrc => 'mic_to_koi8r', probin => '$libdir/cyrillic_and_mic' },
11626 { oid => '4304',
11627 descr => 'internal conversion function for ISO-8859-5 to MULE_INTERNAL',
11628 proname => 'iso_to_mic', prolang => 'c', prorettype => 'int4',
11629 proargtypes => 'int4 int4 cstring internal int4 bool', prosrc => 'iso_to_mic',
11630 probin => '$libdir/cyrillic_and_mic' },
11631 { oid => '4305',
11632 descr => 'internal conversion function for MULE_INTERNAL to ISO-8859-5',
11633 proname => 'mic_to_iso', prolang => 'c', prorettype => 'int4',
11634 proargtypes => 'int4 int4 cstring internal int4 bool', prosrc => 'mic_to_iso',
11635 probin => '$libdir/cyrillic_and_mic' },
11636 { oid => '4306',
11637 descr => 'internal conversion function for WIN1251 to MULE_INTERNAL',
11638 proname => 'win1251_to_mic', prolang => 'c', prorettype => 'int4',
11639 proargtypes => 'int4 int4 cstring internal int4 bool',
11640 prosrc => 'win1251_to_mic', probin => '$libdir/cyrillic_and_mic' },
11641 { oid => '4307',
11642 descr => 'internal conversion function for MULE_INTERNAL to WIN1251',
11643 proname => 'mic_to_win1251', prolang => 'c', prorettype => 'int4',
11644 proargtypes => 'int4 int4 cstring internal int4 bool',
11645 prosrc => 'mic_to_win1251', probin => '$libdir/cyrillic_and_mic' },
11646 { oid => '4308',
11647 descr => 'internal conversion function for WIN866 to MULE_INTERNAL',
11648 proname => 'win866_to_mic', prolang => 'c', prorettype => 'int4',
11649 proargtypes => 'int4 int4 cstring internal int4 bool',
11650 prosrc => 'win866_to_mic', probin => '$libdir/cyrillic_and_mic' },
11651 { oid => '4309',
11652 descr => 'internal conversion function for MULE_INTERNAL to WIN866',
11653 proname => 'mic_to_win866', prolang => 'c', prorettype => 'int4',
11654 proargtypes => 'int4 int4 cstring internal int4 bool',
11655 prosrc => 'mic_to_win866', probin => '$libdir/cyrillic_and_mic' },
11656 { oid => '4310', descr => 'internal conversion function for KOI8R to WIN1251',
11657 proname => 'koi8r_to_win1251', prolang => 'c', prorettype => 'int4',
11658 proargtypes => 'int4 int4 cstring internal int4 bool',
11659 prosrc => 'koi8r_to_win1251', probin => '$libdir/cyrillic_and_mic' },
11660 { oid => '4311', descr => 'internal conversion function for WIN1251 to KOI8R',
11661 proname => 'win1251_to_koi8r', prolang => 'c', prorettype => 'int4',
11662 proargtypes => 'int4 int4 cstring internal int4 bool',
11663 prosrc => 'win1251_to_koi8r', probin => '$libdir/cyrillic_and_mic' },
11664 { oid => '4312', descr => 'internal conversion function for KOI8R to WIN866',
11665 proname => 'koi8r_to_win866', prolang => 'c', prorettype => 'int4',
11666 proargtypes => 'int4 int4 cstring internal int4 bool',
11667 prosrc => 'koi8r_to_win866', probin => '$libdir/cyrillic_and_mic' },
11668 { oid => '4313', descr => 'internal conversion function for WIN866 to KOI8R',
11669 proname => 'win866_to_koi8r', prolang => 'c', prorettype => 'int4',
11670 proargtypes => 'int4 int4 cstring internal int4 bool',
11671 prosrc => 'win866_to_koi8r', probin => '$libdir/cyrillic_and_mic' },
11672 { oid => '4314',
11673 descr => 'internal conversion function for WIN866 to WIN1251',
11674 proname => 'win866_to_win1251', prolang => 'c', prorettype => 'int4',
11675 proargtypes => 'int4 int4 cstring internal int4 bool',
11676 prosrc => 'win866_to_win1251', probin => '$libdir/cyrillic_and_mic' },
11677 { oid => '4315',
11678 descr => 'internal conversion function for WIN1251 to WIN866',
11679 proname => 'win1251_to_win866', prolang => 'c', prorettype => 'int4',
11680 proargtypes => 'int4 int4 cstring internal int4 bool',
11681 prosrc => 'win1251_to_win866', probin => '$libdir/cyrillic_and_mic' },
11682 { oid => '4316',
11683 descr => 'internal conversion function for ISO-8859-5 to KOI8R',
11684 proname => 'iso_to_koi8r', prolang => 'c', prorettype => 'int4',
11685 proargtypes => 'int4 int4 cstring internal int4 bool',
11686 prosrc => 'iso_to_koi8r', probin => '$libdir/cyrillic_and_mic' },
11687 { oid => '4317',
11688 descr => 'internal conversion function for KOI8R to ISO-8859-5',
11689 proname => 'koi8r_to_iso', prolang => 'c', prorettype => 'int4',
11690 proargtypes => 'int4 int4 cstring internal int4 bool',
11691 prosrc => 'koi8r_to_iso', probin => '$libdir/cyrillic_and_mic' },
11692 { oid => '4318',
11693 descr => 'internal conversion function for ISO-8859-5 to WIN1251',
11694 proname => 'iso_to_win1251', prolang => 'c', prorettype => 'int4',
11695 proargtypes => 'int4 int4 cstring internal int4 bool',
11696 prosrc => 'iso_to_win1251', probin => '$libdir/cyrillic_and_mic' },
11697 { oid => '4319',
11698 descr => 'internal conversion function for WIN1251 to ISO-8859-5',
11699 proname => 'win1251_to_iso', prolang => 'c', prorettype => 'int4',
11700 proargtypes => 'int4 int4 cstring internal int4 bool',
11701 prosrc => 'win1251_to_iso', probin => '$libdir/cyrillic_and_mic' },
11702 { oid => '4320',
11703 descr => 'internal conversion function for ISO-8859-5 to WIN866',
11704 proname => 'iso_to_win866', prolang => 'c', prorettype => 'int4',
11705 proargtypes => 'int4 int4 cstring internal int4 bool',
11706 prosrc => 'iso_to_win866', probin => '$libdir/cyrillic_and_mic' },
11707 { oid => '4321',
11708 descr => 'internal conversion function for WIN866 to ISO-8859-5',
11709 proname => 'win866_to_iso', prolang => 'c', prorettype => 'int4',
11710 proargtypes => 'int4 int4 cstring internal int4 bool',
11711 prosrc => 'win866_to_iso', probin => '$libdir/cyrillic_and_mic' },
11712 { oid => '4322',
11713 descr => 'internal conversion function for EUC_CN to MULE_INTERNAL',
11714 proname => 'euc_cn_to_mic', prolang => 'c', prorettype => 'int4',
11715 proargtypes => 'int4 int4 cstring internal int4 bool',
11716 prosrc => 'euc_cn_to_mic', probin => '$libdir/euc_cn_and_mic' },
11717 { oid => '4323',
11718 descr => 'internal conversion function for MULE_INTERNAL to EUC_CN',
11719 proname => 'mic_to_euc_cn', prolang => 'c', prorettype => 'int4',
11720 proargtypes => 'int4 int4 cstring internal int4 bool',
11721 prosrc => 'mic_to_euc_cn', probin => '$libdir/euc_cn_and_mic' },
11722 { oid => '4324', descr => 'internal conversion function for EUC_JP to SJIS',
11723 proname => 'euc_jp_to_sjis', prolang => 'c', prorettype => 'int4',
11724 proargtypes => 'int4 int4 cstring internal int4 bool',
11725 prosrc => 'euc_jp_to_sjis', probin => '$libdir/euc_jp_and_sjis' },
11726 { oid => '4325', descr => 'internal conversion function for SJIS to EUC_JP',
11727 proname => 'sjis_to_euc_jp', prolang => 'c', prorettype => 'int4',
11728 proargtypes => 'int4 int4 cstring internal int4 bool',
11729 prosrc => 'sjis_to_euc_jp', probin => '$libdir/euc_jp_and_sjis' },
11730 { oid => '4326',
11731 descr => 'internal conversion function for EUC_JP to MULE_INTERNAL',
11732 proname => 'euc_jp_to_mic', prolang => 'c', prorettype => 'int4',
11733 proargtypes => 'int4 int4 cstring internal int4 bool',
11734 prosrc => 'euc_jp_to_mic', probin => '$libdir/euc_jp_and_sjis' },
11735 { oid => '4327',
11736 descr => 'internal conversion function for SJIS to MULE_INTERNAL',
11737 proname => 'sjis_to_mic', prolang => 'c', prorettype => 'int4',
11738 proargtypes => 'int4 int4 cstring internal int4 bool',
11739 prosrc => 'sjis_to_mic', probin => '$libdir/euc_jp_and_sjis' },
11740 { oid => '4328',
11741 descr => 'internal conversion function for MULE_INTERNAL to EUC_JP',
11742 proname => 'mic_to_euc_jp', prolang => 'c', prorettype => 'int4',
11743 proargtypes => 'int4 int4 cstring internal int4 bool',
11744 prosrc => 'mic_to_euc_jp', probin => '$libdir/euc_jp_and_sjis' },
11745 { oid => '4329',
11746 descr => 'internal conversion function for MULE_INTERNAL to SJIS',
11747 proname => 'mic_to_sjis', prolang => 'c', prorettype => 'int4',
11748 proargtypes => 'int4 int4 cstring internal int4 bool',
11749 prosrc => 'mic_to_sjis', probin => '$libdir/euc_jp_and_sjis' },
11750 { oid => '4330',
11751 descr => 'internal conversion function for EUC_KR to MULE_INTERNAL',
11752 proname => 'euc_kr_to_mic', prolang => 'c', prorettype => 'int4',
11753 proargtypes => 'int4 int4 cstring internal int4 bool',
11754 prosrc => 'euc_kr_to_mic', probin => '$libdir/euc_kr_and_mic' },
11755 { oid => '4331',
11756 descr => 'internal conversion function for MULE_INTERNAL to EUC_KR',
11757 proname => 'mic_to_euc_kr', prolang => 'c', prorettype => 'int4',
11758 proargtypes => 'int4 int4 cstring internal int4 bool',
11759 prosrc => 'mic_to_euc_kr', probin => '$libdir/euc_kr_and_mic' },
11760 { oid => '4332', descr => 'internal conversion function for EUC_TW to BIG5',
11761 proname => 'euc_tw_to_big5', prolang => 'c', prorettype => 'int4',
11762 proargtypes => 'int4 int4 cstring internal int4 bool',
11763 prosrc => 'euc_tw_to_big5', probin => '$libdir/euc_tw_and_big5' },
11764 { oid => '4333', descr => 'internal conversion function for BIG5 to EUC_TW',
11765 proname => 'big5_to_euc_tw', prolang => 'c', prorettype => 'int4',
11766 proargtypes => 'int4 int4 cstring internal int4 bool',
11767 prosrc => 'big5_to_euc_tw', probin => '$libdir/euc_tw_and_big5' },
11768 { oid => '4334',
11769 descr => 'internal conversion function for EUC_TW to MULE_INTERNAL',
11770 proname => 'euc_tw_to_mic', prolang => 'c', prorettype => 'int4',
11771 proargtypes => 'int4 int4 cstring internal int4 bool',
11772 prosrc => 'euc_tw_to_mic', probin => '$libdir/euc_tw_and_big5' },
11773 { oid => '4335',
11774 descr => 'internal conversion function for BIG5 to MULE_INTERNAL',
11775 proname => 'big5_to_mic', prolang => 'c', prorettype => 'int4',
11776 proargtypes => 'int4 int4 cstring internal int4 bool',
11777 prosrc => 'big5_to_mic', probin => '$libdir/euc_tw_and_big5' },
11778 { oid => '4336',
11779 descr => 'internal conversion function for MULE_INTERNAL to EUC_TW',
11780 proname => 'mic_to_euc_tw', prolang => 'c', prorettype => 'int4',
11781 proargtypes => 'int4 int4 cstring internal int4 bool',
11782 prosrc => 'mic_to_euc_tw', probin => '$libdir/euc_tw_and_big5' },
11783 { oid => '4337',
11784 descr => 'internal conversion function for MULE_INTERNAL to BIG5',
11785 proname => 'mic_to_big5', prolang => 'c', prorettype => 'int4',
11786 proargtypes => 'int4 int4 cstring internal int4 bool',
11787 prosrc => 'mic_to_big5', probin => '$libdir/euc_tw_and_big5' },
11788 { oid => '4338',
11789 descr => 'internal conversion function for LATIN2 to MULE_INTERNAL',
11790 proname => 'latin2_to_mic', prolang => 'c', prorettype => 'int4',
11791 proargtypes => 'int4 int4 cstring internal int4 bool',
11792 prosrc => 'latin2_to_mic', probin => '$libdir/latin2_and_win1250' },
11793 { oid => '4339',
11794 descr => 'internal conversion function for MULE_INTERNAL to LATIN2',
11795 proname => 'mic_to_latin2', prolang => 'c', prorettype => 'int4',
11796 proargtypes => 'int4 int4 cstring internal int4 bool',
11797 prosrc => 'mic_to_latin2', probin => '$libdir/latin2_and_win1250' },
11798 { oid => '4340',
11799 descr => 'internal conversion function for WIN1250 to MULE_INTERNAL',
11800 proname => 'win1250_to_mic', prolang => 'c', prorettype => 'int4',
11801 proargtypes => 'int4 int4 cstring internal int4 bool',
11802 prosrc => 'win1250_to_mic', probin => '$libdir/latin2_and_win1250' },
11803 { oid => '4341',
11804 descr => 'internal conversion function for MULE_INTERNAL to WIN1250',
11805 proname => 'mic_to_win1250', prolang => 'c', prorettype => 'int4',
11806 proargtypes => 'int4 int4 cstring internal int4 bool',
11807 prosrc => 'mic_to_win1250', probin => '$libdir/latin2_and_win1250' },
11808 { oid => '4342',
11809 descr => 'internal conversion function for LATIN2 to WIN1250',
11810 proname => 'latin2_to_win1250', prolang => 'c', prorettype => 'int4',
11811 proargtypes => 'int4 int4 cstring internal int4 bool',
11812 prosrc => 'latin2_to_win1250', probin => '$libdir/latin2_and_win1250' },
11813 { oid => '4343',
11814 descr => 'internal conversion function for WIN1250 to LATIN2',
11815 proname => 'win1250_to_latin2', prolang => 'c', prorettype => 'int4',
11816 proargtypes => 'int4 int4 cstring internal int4 bool',
11817 prosrc => 'win1250_to_latin2', probin => '$libdir/latin2_and_win1250' },
11818 { oid => '4344',
11819 descr => 'internal conversion function for LATIN1 to MULE_INTERNAL',
11820 proname => 'latin1_to_mic', prolang => 'c', prorettype => 'int4',
11821 proargtypes => 'int4 int4 cstring internal int4 bool',
11822 prosrc => 'latin1_to_mic', probin => '$libdir/latin_and_mic' },
11823 { oid => '4345',
11824 descr => 'internal conversion function for MULE_INTERNAL to LATIN1',
11825 proname => 'mic_to_latin1', prolang => 'c', prorettype => 'int4',
11826 proargtypes => 'int4 int4 cstring internal int4 bool',
11827 prosrc => 'mic_to_latin1', probin => '$libdir/latin_and_mic' },
11828 { oid => '4346',
11829 descr => 'internal conversion function for LATIN3 to MULE_INTERNAL',
11830 proname => 'latin3_to_mic', prolang => 'c', prorettype => 'int4',
11831 proargtypes => 'int4 int4 cstring internal int4 bool',
11832 prosrc => 'latin3_to_mic', probin => '$libdir/latin_and_mic' },
11833 { oid => '4347',
11834 descr => 'internal conversion function for MULE_INTERNAL to LATIN3',
11835 proname => 'mic_to_latin3', prolang => 'c', prorettype => 'int4',
11836 proargtypes => 'int4 int4 cstring internal int4 bool',
11837 prosrc => 'mic_to_latin3', probin => '$libdir/latin_and_mic' },
11838 { oid => '4348',
11839 descr => 'internal conversion function for LATIN4 to MULE_INTERNAL',
11840 proname => 'latin4_to_mic', prolang => 'c', prorettype => 'int4',
11841 proargtypes => 'int4 int4 cstring internal int4 bool',
11842 prosrc => 'latin4_to_mic', probin => '$libdir/latin_and_mic' },
11843 { oid => '4349',
11844 descr => 'internal conversion function for MULE_INTERNAL to LATIN4',
11845 proname => 'mic_to_latin4', prolang => 'c', prorettype => 'int4',
11846 proargtypes => 'int4 int4 cstring internal int4 bool',
11847 prosrc => 'mic_to_latin4', probin => '$libdir/latin_and_mic' },
11848 { oid => '4352', descr => 'internal conversion function for BIG5 to UTF8',
11849 proname => 'big5_to_utf8', prolang => 'c', prorettype => 'int4',
11850 proargtypes => 'int4 int4 cstring internal int4 bool',
11851 prosrc => 'big5_to_utf8', probin => '$libdir/utf8_and_big5' },
11852 { oid => '4353', descr => 'internal conversion function for UTF8 to BIG5',
11853 proname => 'utf8_to_big5', prolang => 'c', prorettype => 'int4',
11854 proargtypes => 'int4 int4 cstring internal int4 bool',
11855 prosrc => 'utf8_to_big5', probin => '$libdir/utf8_and_big5' },
11856 { oid => '4354', descr => 'internal conversion function for UTF8 to KOI8R',
11857 proname => 'utf8_to_koi8r', prolang => 'c', prorettype => 'int4',
11858 proargtypes => 'int4 int4 cstring internal int4 bool',
11859 prosrc => 'utf8_to_koi8r', probin => '$libdir/utf8_and_cyrillic' },
11860 { oid => '4355', descr => 'internal conversion function for KOI8R to UTF8',
11861 proname => 'koi8r_to_utf8', prolang => 'c', prorettype => 'int4',
11862 proargtypes => 'int4 int4 cstring internal int4 bool',
11863 prosrc => 'koi8r_to_utf8', probin => '$libdir/utf8_and_cyrillic' },
11864 { oid => '4356', descr => 'internal conversion function for UTF8 to KOI8U',
11865 proname => 'utf8_to_koi8u', prolang => 'c', prorettype => 'int4',
11866 proargtypes => 'int4 int4 cstring internal int4 bool',
11867 prosrc => 'utf8_to_koi8u', probin => '$libdir/utf8_and_cyrillic' },
11868 { oid => '4357', descr => 'internal conversion function for KOI8U to UTF8',
11869 proname => 'koi8u_to_utf8', prolang => 'c', prorettype => 'int4',
11870 proargtypes => 'int4 int4 cstring internal int4 bool',
11871 prosrc => 'koi8u_to_utf8', probin => '$libdir/utf8_and_cyrillic' },
11872 { oid => '4358', descr => 'internal conversion function for UTF8 to WIN',
11873 proname => 'utf8_to_win', prolang => 'c', prorettype => 'int4',
11874 proargtypes => 'int4 int4 cstring internal int4 bool',
11875 prosrc => 'utf8_to_win', probin => '$libdir/utf8_and_win' },
11876 { oid => '4359', descr => 'internal conversion function for WIN to UTF8',
11877 proname => 'win_to_utf8', prolang => 'c', prorettype => 'int4',
11878 proargtypes => 'int4 int4 cstring internal int4 bool',
11879 prosrc => 'win_to_utf8', probin => '$libdir/utf8_and_win' },
11880 { oid => '4360', descr => 'internal conversion function for EUC_CN to UTF8',
11881 proname => 'euc_cn_to_utf8', prolang => 'c', prorettype => 'int4',
11882 proargtypes => 'int4 int4 cstring internal int4 bool',
11883 prosrc => 'euc_cn_to_utf8', probin => '$libdir/utf8_and_euc_cn' },
11884 { oid => '4361', descr => 'internal conversion function for UTF8 to EUC_CN',
11885 proname => 'utf8_to_euc_cn', prolang => 'c', prorettype => 'int4',
11886 proargtypes => 'int4 int4 cstring internal int4 bool',
11887 prosrc => 'utf8_to_euc_cn', probin => '$libdir/utf8_and_euc_cn' },
11888 { oid => '4362', descr => 'internal conversion function for EUC_JP to UTF8',
11889 proname => 'euc_jp_to_utf8', prolang => 'c', prorettype => 'int4',
11890 proargtypes => 'int4 int4 cstring internal int4 bool',
11891 prosrc => 'euc_jp_to_utf8', probin => '$libdir/utf8_and_euc_jp' },
11892 { oid => '4363', descr => 'internal conversion function for UTF8 to EUC_JP',
11893 proname => 'utf8_to_euc_jp', prolang => 'c', prorettype => 'int4',
11894 proargtypes => 'int4 int4 cstring internal int4 bool',
11895 prosrc => 'utf8_to_euc_jp', probin => '$libdir/utf8_and_euc_jp' },
11896 { oid => '4364', descr => 'internal conversion function for EUC_KR to UTF8',
11897 proname => 'euc_kr_to_utf8', prolang => 'c', prorettype => 'int4',
11898 proargtypes => 'int4 int4 cstring internal int4 bool',
11899 prosrc => 'euc_kr_to_utf8', probin => '$libdir/utf8_and_euc_kr' },
11900 { oid => '4365', descr => 'internal conversion function for UTF8 to EUC_KR',
11901 proname => 'utf8_to_euc_kr', prolang => 'c', prorettype => 'int4',
11902 proargtypes => 'int4 int4 cstring internal int4 bool',
11903 prosrc => 'utf8_to_euc_kr', probin => '$libdir/utf8_and_euc_kr' },
11904 { oid => '4366', descr => 'internal conversion function for EUC_TW to UTF8',
11905 proname => 'euc_tw_to_utf8', prolang => 'c', prorettype => 'int4',
11906 proargtypes => 'int4 int4 cstring internal int4 bool',
11907 prosrc => 'euc_tw_to_utf8', probin => '$libdir/utf8_and_euc_tw' },
11908 { oid => '4367', descr => 'internal conversion function for UTF8 to EUC_TW',
11909 proname => 'utf8_to_euc_tw', prolang => 'c', prorettype => 'int4',
11910 proargtypes => 'int4 int4 cstring internal int4 bool',
11911 prosrc => 'utf8_to_euc_tw', probin => '$libdir/utf8_and_euc_tw' },
11912 { oid => '4368', descr => 'internal conversion function for GB18030 to UTF8',
11913 proname => 'gb18030_to_utf8', prolang => 'c', prorettype => 'int4',
11914 proargtypes => 'int4 int4 cstring internal int4 bool',
11915 prosrc => 'gb18030_to_utf8', probin => '$libdir/utf8_and_gb18030' },
11916 { oid => '4369', descr => 'internal conversion function for UTF8 to GB18030',
11917 proname => 'utf8_to_gb18030', prolang => 'c', prorettype => 'int4',
11918 proargtypes => 'int4 int4 cstring internal int4 bool',
11919 prosrc => 'utf8_to_gb18030', probin => '$libdir/utf8_and_gb18030' },
11920 { oid => '4370', descr => 'internal conversion function for GBK to UTF8',
11921 proname => 'gbk_to_utf8', prolang => 'c', prorettype => 'int4',
11922 proargtypes => 'int4 int4 cstring internal int4 bool',
11923 prosrc => 'gbk_to_utf8', probin => '$libdir/utf8_and_gbk' },
11924 { oid => '4371', descr => 'internal conversion function for UTF8 to GBK',
11925 proname => 'utf8_to_gbk', prolang => 'c', prorettype => 'int4',
11926 proargtypes => 'int4 int4 cstring internal int4 bool',
11927 prosrc => 'utf8_to_gbk', probin => '$libdir/utf8_and_gbk' },
11928 { oid => '4372',
11929 descr => 'internal conversion function for UTF8 to ISO-8859 2-16',
11930 proname => 'utf8_to_iso8859', prolang => 'c', prorettype => 'int4',
11931 proargtypes => 'int4 int4 cstring internal int4 bool',
11932 prosrc => 'utf8_to_iso8859', probin => '$libdir/utf8_and_iso8859' },
11933 { oid => '4373',
11934 descr => 'internal conversion function for ISO-8859 2-16 to UTF8',
11935 proname => 'iso8859_to_utf8', prolang => 'c', prorettype => 'int4',
11936 proargtypes => 'int4 int4 cstring internal int4 bool',
11937 prosrc => 'iso8859_to_utf8', probin => '$libdir/utf8_and_iso8859' },
11938 { oid => '4374', descr => 'internal conversion function for LATIN1 to UTF8',
11939 proname => 'iso8859_1_to_utf8', prolang => 'c', prorettype => 'int4',
11940 proargtypes => 'int4 int4 cstring internal int4 bool',
11941 prosrc => 'iso8859_1_to_utf8', probin => '$libdir/utf8_and_iso8859_1' },
11942 { oid => '4375', descr => 'internal conversion function for UTF8 to LATIN1',
11943 proname => 'utf8_to_iso8859_1', prolang => 'c', prorettype => 'int4',
11944 proargtypes => 'int4 int4 cstring internal int4 bool',
11945 prosrc => 'utf8_to_iso8859_1', probin => '$libdir/utf8_and_iso8859_1' },
11946 { oid => '4376', descr => 'internal conversion function for JOHAB to UTF8',
11947 proname => 'johab_to_utf8', prolang => 'c', prorettype => 'int4',
11948 proargtypes => 'int4 int4 cstring internal int4 bool',
11949 prosrc => 'johab_to_utf8', probin => '$libdir/utf8_and_johab' },
11950 { oid => '4377', descr => 'internal conversion function for UTF8 to JOHAB',
11951 proname => 'utf8_to_johab', prolang => 'c', prorettype => 'int4',
11952 proargtypes => 'int4 int4 cstring internal int4 bool',
11953 prosrc => 'utf8_to_johab', probin => '$libdir/utf8_and_johab' },
11954 { oid => '4378', descr => 'internal conversion function for SJIS to UTF8',
11955 proname => 'sjis_to_utf8', prolang => 'c', prorettype => 'int4',
11956 proargtypes => 'int4 int4 cstring internal int4 bool',
11957 prosrc => 'sjis_to_utf8', probin => '$libdir/utf8_and_sjis' },
11958 { oid => '4379', descr => 'internal conversion function for UTF8 to SJIS',
11959 proname => 'utf8_to_sjis', prolang => 'c', prorettype => 'int4',
11960 proargtypes => 'int4 int4 cstring internal int4 bool',
11961 prosrc => 'utf8_to_sjis', probin => '$libdir/utf8_and_sjis' },
11962 { oid => '4380', descr => 'internal conversion function for UHC to UTF8',
11963 proname => 'uhc_to_utf8', prolang => 'c', prorettype => 'int4',
11964 proargtypes => 'int4 int4 cstring internal int4 bool',
11965 prosrc => 'uhc_to_utf8', probin => '$libdir/utf8_and_uhc' },
11966 { oid => '4381', descr => 'internal conversion function for UTF8 to UHC',
11967 proname => 'utf8_to_uhc', prolang => 'c', prorettype => 'int4',
11968 proargtypes => 'int4 int4 cstring internal int4 bool',
11969 prosrc => 'utf8_to_uhc', probin => '$libdir/utf8_and_uhc' },
11970 { oid => '4382',
11971 descr => 'internal conversion function for EUC_JIS_2004 to UTF8',
11972 proname => 'euc_jis_2004_to_utf8', prolang => 'c', prorettype => 'int4',
11973 proargtypes => 'int4 int4 cstring internal int4 bool',
11974 prosrc => 'euc_jis_2004_to_utf8', probin => '$libdir/utf8_and_euc2004' },
11975 { oid => '4383',
11976 descr => 'internal conversion function for UTF8 to EUC_JIS_2004',
11977 proname => 'utf8_to_euc_jis_2004', prolang => 'c', prorettype => 'int4',
11978 proargtypes => 'int4 int4 cstring internal int4 bool',
11979 prosrc => 'utf8_to_euc_jis_2004', probin => '$libdir/utf8_and_euc2004' },
11980 { oid => '4384',
11981 descr => 'internal conversion function for SHIFT_JIS_2004 to UTF8',
11982 proname => 'shift_jis_2004_to_utf8', prolang => 'c', prorettype => 'int4',
11983 proargtypes => 'int4 int4 cstring internal int4 bool',
11984 prosrc => 'shift_jis_2004_to_utf8', probin => '$libdir/utf8_and_sjis2004' },
11985 { oid => '4385',
11986 descr => 'internal conversion function for UTF8 to SHIFT_JIS_2004',
11987 proname => 'utf8_to_shift_jis_2004', prolang => 'c', prorettype => 'int4',
11988 proargtypes => 'int4 int4 cstring internal int4 bool',
11989 prosrc => 'utf8_to_shift_jis_2004', probin => '$libdir/utf8_and_sjis2004' },
11990 { oid => '4386',
11991 descr => 'internal conversion function for EUC_JIS_2004 to SHIFT_JIS_2004',
11992 proname => 'euc_jis_2004_to_shift_jis_2004', prolang => 'c',
11993 prorettype => 'int4', proargtypes => 'int4 int4 cstring internal int4 bool',
11994 prosrc => 'euc_jis_2004_to_shift_jis_2004',
11995 probin => '$libdir/euc2004_sjis2004' },
11996 { oid => '4387',
11997 descr => 'internal conversion function for SHIFT_JIS_2004 to EUC_JIS_2004',
11998 proname => 'shift_jis_2004_to_euc_jis_2004', prolang => 'c',
11999 prorettype => 'int4', proargtypes => 'int4 int4 cstring internal int4 bool',
12000 prosrc => 'shift_jis_2004_to_euc_jis_2004',
12001 probin => '$libdir/euc2004_sjis2004' },
12003 { oid => '5040',
12004 descr => 'restriction selectivity for generic matching operators',
12005 proname => 'matchingsel', provolatile => 's', prorettype => 'float8',
12006 proargtypes => 'internal oid internal int4', prosrc => 'matchingsel' },
12007 { oid => '5041', descr => 'join selectivity for generic matching operators',
12008 proname => 'matchingjoinsel', provolatile => 's', prorettype => 'float8',
12009 proargtypes => 'internal oid internal int2 internal',
12010 prosrc => 'matchingjoinsel' },
12012 # replication/origin.h
12013 { oid => '6003', descr => 'create a replication origin',
12014 proname => 'pg_replication_origin_create', provolatile => 'v',
12015 proparallel => 'u', prorettype => 'oid', proargtypes => 'text',
12016 prosrc => 'pg_replication_origin_create' },
12018 { oid => '6004', descr => 'drop replication origin identified by its name',
12019 proname => 'pg_replication_origin_drop', provolatile => 'v',
12020 proparallel => 'u', prorettype => 'void', proargtypes => 'text',
12021 prosrc => 'pg_replication_origin_drop' },
12023 { oid => '6005',
12024 descr => 'translate the replication origin\'s name to its id',
12025 proname => 'pg_replication_origin_oid', provolatile => 's',
12026 prorettype => 'oid', proargtypes => 'text',
12027 prosrc => 'pg_replication_origin_oid' },
12029 { oid => '6006',
12030 descr => 'configure session to maintain replication progress tracking for the passed in origin',
12031 proname => 'pg_replication_origin_session_setup', provolatile => 'v',
12032 proparallel => 'u', prorettype => 'void', proargtypes => 'text',
12033 prosrc => 'pg_replication_origin_session_setup' },
12035 { oid => '6007', descr => 'teardown configured replication progress tracking',
12036 proname => 'pg_replication_origin_session_reset', provolatile => 'v',
12037 proparallel => 'u', prorettype => 'void', proargtypes => '',
12038 prosrc => 'pg_replication_origin_session_reset' },
12040 { oid => '6008',
12041 descr => 'is a replication origin configured in this session',
12042 proname => 'pg_replication_origin_session_is_setup', provolatile => 'v',
12043 proparallel => 'r', prorettype => 'bool', proargtypes => '',
12044 prosrc => 'pg_replication_origin_session_is_setup' },
12046 { oid => '6009',
12047 descr => 'get the replication progress of the current session',
12048 proname => 'pg_replication_origin_session_progress', provolatile => 'v',
12049 proparallel => 'u', prorettype => 'pg_lsn', proargtypes => 'bool',
12050 prosrc => 'pg_replication_origin_session_progress' },
12052 { oid => '6010', descr => 'setup the transaction\'s origin lsn and timestamp',
12053 proname => 'pg_replication_origin_xact_setup', provolatile => 'v',
12054 proparallel => 'r', prorettype => 'void', proargtypes => 'pg_lsn timestamptz',
12055 prosrc => 'pg_replication_origin_xact_setup' },
12057 { oid => '6011', descr => 'reset the transaction\'s origin lsn and timestamp',
12058 proname => 'pg_replication_origin_xact_reset', provolatile => 'v',
12059 proparallel => 'r', prorettype => 'void', proargtypes => '',
12060 prosrc => 'pg_replication_origin_xact_reset' },
12062 { oid => '6012', descr => 'advance replication origin to specific location',
12063 proname => 'pg_replication_origin_advance', provolatile => 'v',
12064 proparallel => 'u', prorettype => 'void', proargtypes => 'text pg_lsn',
12065 prosrc => 'pg_replication_origin_advance' },
12067 { oid => '6013',
12068 descr => 'get an individual replication origin\'s replication progress',
12069 proname => 'pg_replication_origin_progress', provolatile => 'v',
12070 proparallel => 'u', prorettype => 'pg_lsn', proargtypes => 'text bool',
12071 prosrc => 'pg_replication_origin_progress' },
12073 { oid => '6014', descr => 'get progress for all replication origins',
12074 proname => 'pg_show_replication_origin_status', prorows => '100',
12075 proisstrict => 'f', proretset => 't', provolatile => 'v', proparallel => 'r',
12076 prorettype => 'record', proargtypes => '',
12077 proallargtypes => '{oid,text,pg_lsn,pg_lsn}', proargmodes => '{o,o,o,o}',
12078 proargnames => '{local_id, external_id, remote_lsn, local_lsn}',
12079 prosrc => 'pg_show_replication_origin_status' },
12081 # publications
12082 { oid => '6119',
12083 descr => 'get information of the tables that are part of the specified publications',
12084 proname => 'pg_get_publication_tables', prorows => '1000',
12085 provariadic => 'text', proretset => 't', provolatile => 's',
12086 prorettype => 'record', proargtypes => '_text',
12087 proallargtypes => '{_text,oid,oid,int2vector,pg_node_tree}',
12088 proargmodes => '{v,o,o,o,o}',
12089 proargnames => '{pubname,pubid,relid,attrs,qual}',
12090 prosrc => 'pg_get_publication_tables' },
12091 { oid => '6121',
12092 descr => 'returns whether a relation can be part of a publication',
12093 proname => 'pg_relation_is_publishable', provolatile => 's',
12094 prorettype => 'bool', proargtypes => 'regclass',
12095 prosrc => 'pg_relation_is_publishable' },
12097 # rls
12098 { oid => '3298',
12099 descr => 'row security for current context active on table by table oid',
12100 proname => 'row_security_active', provolatile => 's', prorettype => 'bool',
12101 proargtypes => 'oid', prosrc => 'row_security_active' },
12102 { oid => '3299',
12103 descr => 'row security for current context active on table by table name',
12104 proname => 'row_security_active', provolatile => 's', prorettype => 'bool',
12105 proargtypes => 'text', prosrc => 'row_security_active_name' },
12107 # pg_config
12108 { oid => '3400', descr => 'pg_config binary as a function',
12109 proname => 'pg_config', prorows => '23', proretset => 't', provolatile => 's',
12110 proparallel => 'r', prorettype => 'record', proargtypes => '',
12111 proallargtypes => '{text,text}', proargmodes => '{o,o}',
12112 proargnames => '{name,setting}', prosrc => 'pg_config' },
12114 # pg_controldata related functions
12115 { oid => '3441',
12116 descr => 'pg_controldata general state information as a function',
12117 proname => 'pg_control_system', provolatile => 'v', prorettype => 'record',
12118 proargtypes => '', proallargtypes => '{int4,int4,int8,timestamptz}',
12119 proargmodes => '{o,o,o,o}',
12120 proargnames => '{pg_control_version,catalog_version_no,system_identifier,pg_control_last_modified}',
12121 prosrc => 'pg_control_system' },
12123 { oid => '3442',
12124 descr => 'pg_controldata checkpoint state information as a function',
12125 proname => 'pg_control_checkpoint', provolatile => 'v',
12126 prorettype => 'record', proargtypes => '',
12127 proallargtypes => '{pg_lsn,pg_lsn,text,int4,int4,bool,text,oid,xid,xid,xid,oid,xid,xid,oid,xid,xid,timestamptz}',
12128 proargmodes => '{o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o}',
12129 proargnames => '{checkpoint_lsn,redo_lsn,redo_wal_file,timeline_id,prev_timeline_id,full_page_writes,next_xid,next_oid,next_multixact_id,next_multi_offset,oldest_xid,oldest_xid_dbid,oldest_active_xid,oldest_multi_xid,oldest_multi_dbid,oldest_commit_ts_xid,newest_commit_ts_xid,checkpoint_time}',
12130 prosrc => 'pg_control_checkpoint' },
12132 { oid => '3443',
12133 descr => 'pg_controldata recovery state information as a function',
12134 proname => 'pg_control_recovery', provolatile => 'v', prorettype => 'record',
12135 proargtypes => '', proallargtypes => '{pg_lsn,int4,pg_lsn,pg_lsn,bool}',
12136 proargmodes => '{o,o,o,o,o}',
12137 proargnames => '{min_recovery_end_lsn,min_recovery_end_timeline,backup_start_lsn,backup_end_lsn,end_of_backup_record_required}',
12138 prosrc => 'pg_control_recovery' },
12140 { oid => '3444',
12141 descr => 'pg_controldata init state information as a function',
12142 proname => 'pg_control_init', provolatile => 'v', prorettype => 'record',
12143 proargtypes => '',
12144 proallargtypes => '{int4,int4,int4,int4,int4,int4,int4,int4,int4,bool,int4}',
12145 proargmodes => '{o,o,o,o,o,o,o,o,o,o,o}',
12146 proargnames => '{max_data_alignment,database_block_size,blocks_per_segment,wal_block_size,bytes_per_wal_segment,max_identifier_length,max_index_columns,max_toast_chunk_size,large_object_chunk_size,float8_pass_by_value,data_page_checksum_version}',
12147 prosrc => 'pg_control_init' },
12149 # subscripting support for built-in types
12150 { oid => '6179', descr => 'standard array subscripting support',
12151 proname => 'array_subscript_handler', prorettype => 'internal',
12152 proargtypes => 'internal', prosrc => 'array_subscript_handler' },
12153 { oid => '6180', descr => 'raw array subscripting support',
12154 proname => 'raw_array_subscript_handler', prorettype => 'internal',
12155 proargtypes => 'internal', prosrc => 'raw_array_subscript_handler' },
12156 # type subscripting support
12157 { oid => '6098', descr => 'jsonb subscripting logic',
12158 proname => 'jsonb_subscript_handler', prorettype => 'internal',
12159 proargtypes => 'internal', prosrc => 'jsonb_subscript_handler' },
12161 # collation management functions
12162 { oid => '3445', descr => 'import collations from operating system',
12163 proname => 'pg_import_system_collations', procost => '100',
12164 provolatile => 'v', proparallel => 'u', prorettype => 'int4',
12165 proargtypes => 'regnamespace', prosrc => 'pg_import_system_collations' },
12167 { oid => '3448',
12168 descr => 'get actual version of collation from operating system',
12169 proname => 'pg_collation_actual_version', procost => '100',
12170 provolatile => 'v', prorettype => 'text', proargtypes => 'oid',
12171 prosrc => 'pg_collation_actual_version' },
12172 { oid => '6249',
12173 descr => 'get actual version of database collation from operating system',
12174 proname => 'pg_database_collation_actual_version', procost => '100',
12175 provolatile => 'v', prorettype => 'text', proargtypes => 'oid',
12176 prosrc => 'pg_database_collation_actual_version' },
12178 # system management/monitoring related functions
12179 { oid => '3353', descr => 'list files in the log directory',
12180 proname => 'pg_ls_logdir', procost => '10', prorows => '20', proretset => 't',
12181 provolatile => 'v', prorettype => 'record', proargtypes => '',
12182 proallargtypes => '{text,int8,timestamptz}', proargmodes => '{o,o,o}',
12183 proargnames => '{name,size,modification}', prosrc => 'pg_ls_logdir' },
12184 { oid => '3354', descr => 'list of files in the WAL directory',
12185 proname => 'pg_ls_waldir', procost => '10', prorows => '20', proretset => 't',
12186 provolatile => 'v', prorettype => 'record', proargtypes => '',
12187 proallargtypes => '{text,int8,timestamptz}', proargmodes => '{o,o,o}',
12188 proargnames => '{name,size,modification}', prosrc => 'pg_ls_waldir' },
12189 { oid => '5031', descr => 'list of files in the archive_status directory',
12190 proname => 'pg_ls_archive_statusdir', procost => '10', prorows => '20',
12191 proretset => 't', provolatile => 'v', prorettype => 'record',
12192 proargtypes => '', proallargtypes => '{text,int8,timestamptz}',
12193 proargmodes => '{o,o,o}', proargnames => '{name,size,modification}',
12194 prosrc => 'pg_ls_archive_statusdir' },
12195 { oid => '5029', descr => 'list files in the pgsql_tmp directory',
12196 proname => 'pg_ls_tmpdir', procost => '10', prorows => '20', proretset => 't',
12197 provolatile => 'v', prorettype => 'record', proargtypes => '',
12198 proallargtypes => '{text,int8,timestamptz}', proargmodes => '{o,o,o}',
12199 proargnames => '{name,size,modification}', prosrc => 'pg_ls_tmpdir_noargs' },
12200 { oid => '5030', descr => 'list files in the pgsql_tmp directory',
12201 proname => 'pg_ls_tmpdir', procost => '10', prorows => '20', proretset => 't',
12202 provolatile => 'v', prorettype => 'record', proargtypes => 'oid',
12203 proallargtypes => '{oid,text,int8,timestamptz}', proargmodes => '{i,o,o,o}',
12204 proargnames => '{tablespace,name,size,modification}',
12205 prosrc => 'pg_ls_tmpdir_1arg' },
12206 { oid => '6270',
12207 descr => 'list of files in the pg_logical/snapshots directory',
12208 proname => 'pg_ls_logicalsnapdir', procost => '10', prorows => '20',
12209 proretset => 't', provolatile => 'v', prorettype => 'record',
12210 proargtypes => '', proallargtypes => '{text,int8,timestamptz}',
12211 proargmodes => '{o,o,o}', proargnames => '{name,size,modification}',
12212 prosrc => 'pg_ls_logicalsnapdir' },
12213 { oid => '6271',
12214 descr => 'list of files in the pg_logical/mappings directory',
12215 proname => 'pg_ls_logicalmapdir', procost => '10', prorows => '20',
12216 proretset => 't', provolatile => 'v', prorettype => 'record',
12217 proargtypes => '', proallargtypes => '{text,int8,timestamptz}',
12218 proargmodes => '{o,o,o}', proargnames => '{name,size,modification}',
12219 prosrc => 'pg_ls_logicalmapdir' },
12220 { oid => '6272',
12221 descr => 'list of files in the pg_replslot/slot_name directory',
12222 proname => 'pg_ls_replslotdir', procost => '10', prorows => '20',
12223 proretset => 't', provolatile => 'v', prorettype => 'record',
12224 proargtypes => 'text', proallargtypes => '{text,text,int8,timestamptz}',
12225 proargmodes => '{i,o,o,o}',
12226 proargnames => '{slot_name,name,size,modification}',
12227 prosrc => 'pg_ls_replslotdir' },
12229 # hash partitioning constraint function
12230 { oid => '5028', descr => 'hash partition CHECK constraint',
12231 proname => 'satisfies_hash_partition', provariadic => 'any',
12232 proisstrict => 'f', prorettype => 'bool', proargtypes => 'oid int4 int4 any',
12233 proargmodes => '{i,i,i,v}', prosrc => 'satisfies_hash_partition' },
12235 # information about a partition tree
12236 { oid => '3423', descr => 'view partition tree tables',
12237 proname => 'pg_partition_tree', prorows => '1000', proretset => 't',
12238 provolatile => 'v', prorettype => 'record', proargtypes => 'regclass',
12239 proallargtypes => '{regclass,regclass,regclass,bool,int4}',
12240 proargmodes => '{i,o,o,o,o}',
12241 proargnames => '{rootrelid,relid,parentrelid,isleaf,level}',
12242 prosrc => 'pg_partition_tree' },
12243 { oid => '3425', descr => 'view ancestors of the partition',
12244 proname => 'pg_partition_ancestors', prorows => '10', proretset => 't',
12245 provolatile => 'v', prorettype => 'regclass', proargtypes => 'regclass',
12246 proallargtypes => '{regclass,regclass}', proargmodes => '{i,o}',
12247 proargnames => '{partitionid,relid}', prosrc => 'pg_partition_ancestors' },
12249 # function to get the top-most partition root parent
12250 { oid => '3424', descr => 'get top-most partition root parent',
12251 proname => 'pg_partition_root', prorettype => 'regclass',
12252 proargtypes => 'regclass', prosrc => 'pg_partition_root' },
12254 { oid => '4549', descr => 'Unicode version used by Postgres',
12255 proname => 'unicode_version', prorettype => 'text', proargtypes => '',
12256 prosrc => 'unicode_version' },
12258 { oid => '6099', descr => 'Unicode version used by ICU, if enabled',
12259 proname => 'icu_unicode_version', prorettype => 'text', proargtypes => '',
12260 prosrc => 'icu_unicode_version' },
12262 { oid => '6105', descr => 'check valid Unicode',
12263 proname => 'unicode_assigned', prorettype => 'bool', proargtypes => 'text',
12264 prosrc => 'unicode_assigned' },
12266 { oid => '4350', descr => 'Unicode normalization',
12267 proname => 'normalize', prorettype => 'text', proargtypes => 'text text',
12268 prosrc => 'unicode_normalize_func' },
12270 { oid => '4351', descr => 'check Unicode normalization',
12271 proname => 'is_normalized', prorettype => 'bool', proargtypes => 'text text',
12272 prosrc => 'unicode_is_normalized' },
12274 { oid => '6198', descr => 'unescape Unicode characters',
12275 proname => 'unistr', prorettype => 'text', proargtypes => 'text',
12276 prosrc => 'unistr' },
12278 { oid => '4596', descr => 'I/O',
12279 proname => 'brin_bloom_summary_in', prorettype => 'pg_brin_bloom_summary',
12280 proargtypes => 'cstring', prosrc => 'brin_bloom_summary_in' },
12281 { oid => '4597', descr => 'I/O',
12282 proname => 'brin_bloom_summary_out', prorettype => 'cstring',
12283 proargtypes => 'pg_brin_bloom_summary', prosrc => 'brin_bloom_summary_out' },
12284 { oid => '4598', descr => 'I/O',
12285 proname => 'brin_bloom_summary_recv', provolatile => 's',
12286 prorettype => 'pg_brin_bloom_summary', proargtypes => 'internal',
12287 prosrc => 'brin_bloom_summary_recv' },
12288 { oid => '4599', descr => 'I/O',
12289 proname => 'brin_bloom_summary_send', provolatile => 's',
12290 prorettype => 'bytea', proargtypes => 'pg_brin_bloom_summary',
12291 prosrc => 'brin_bloom_summary_send' },
12293 { oid => '4638', descr => 'I/O',
12294 proname => 'brin_minmax_multi_summary_in',
12295 prorettype => 'pg_brin_minmax_multi_summary', proargtypes => 'cstring',
12296 prosrc => 'brin_minmax_multi_summary_in' },
12297 { oid => '4639', descr => 'I/O',
12298 proname => 'brin_minmax_multi_summary_out', prorettype => 'cstring',
12299 proargtypes => 'pg_brin_minmax_multi_summary',
12300 prosrc => 'brin_minmax_multi_summary_out' },
12301 { oid => '4640', descr => 'I/O',
12302 proname => 'brin_minmax_multi_summary_recv', provolatile => 's',
12303 prorettype => 'pg_brin_minmax_multi_summary', proargtypes => 'internal',
12304 prosrc => 'brin_minmax_multi_summary_recv' },
12305 { oid => '4641', descr => 'I/O',
12306 proname => 'brin_minmax_multi_summary_send', provolatile => 's',
12307 prorettype => 'bytea', proargtypes => 'pg_brin_minmax_multi_summary',
12308 prosrc => 'brin_minmax_multi_summary_send' },
12310 { oid => '6291', descr => 'arbitrary value from among input values',
12311 proname => 'any_value', prokind => 'a', proisstrict => 'f',
12312 prorettype => 'anyelement', proargtypes => 'anyelement',
12313 prosrc => 'aggregate_dummy' },
12314 { oid => '6292', descr => 'aggregate transition function',
12315 proname => 'any_value_transfn', prorettype => 'anyelement',
12316 proargtypes => 'anyelement anyelement', prosrc => 'any_value_transfn' },
12318 { oid => '6321', descr => 'list of available WAL summary files',
12319 proname => 'pg_available_wal_summaries', prorows => '100', proretset => 't',
12320 provolatile => 'v', prorettype => 'record', proargtypes => '',
12321 proallargtypes => '{int8,pg_lsn,pg_lsn}', proargmodes => '{o,o,o}',
12322 proargnames => '{tli,start_lsn,end_lsn}',
12323 prosrc => 'pg_available_wal_summaries' },
12324 { oid => '6322', descr => 'contents of a WAL summary file',
12325 proname => 'pg_wal_summary_contents', prorows => '100', proretset => 't',
12326 provolatile => 'v', prorettype => 'record',
12327 proargtypes => 'int8 pg_lsn pg_lsn',
12328 proallargtypes => '{int8,pg_lsn,pg_lsn,oid,oid,oid,int2,int8,bool}',
12329 proargmodes => '{i,i,i,o,o,o,o,o,o}',
12330 proargnames => '{tli,start_lsn,end_lsn,relfilenode,reltablespace,reldatabase,relforknumber,relblocknumber,is_limit_block}',
12331 prosrc => 'pg_wal_summary_contents' },
12332 { oid => '6323', descr => 'WAL summarizer state',
12333 proname => 'pg_get_wal_summarizer_state', provolatile => 'v',
12334 prorettype => 'record', proargtypes => '',
12335 proallargtypes => '{int8,pg_lsn,pg_lsn,int4}', proargmodes => '{o,o,o,o}',
12336 proargnames => '{summarized_tli,summarized_lsn,pending_lsn,summarizer_pid}',
12337 prosrc => 'pg_get_wal_summarizer_state' },
12339 # GiST stratnum implementations
12340 { oid => '8047', descr => 'GiST support',
12341 proname => 'gist_stratnum_identity', prorettype => 'int2',
12342 proargtypes => 'int2',
12343 prosrc => 'gist_stratnum_identity' },