1#----------------------------------------------------------------------
2#
3# pg_proc.dat
4#    Initial contents of the pg_proc system catalog.
5#
6# Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
7# Portions Copyright (c) 1994, Regents of the University of California
8#
9# src/include/catalog/pg_proc.dat
10#
11#----------------------------------------------------------------------
12
13[
14
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.
21
22# Try to follow the style of existing functions' comments.
23# Some recommended conventions:
24#
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
32
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.
35
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.
39
40# OIDS 1 - 99
41
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', proleakproof => 't', prorettype => 'bool',
171  proargtypes => 'text text', prosrc => 'text_starts_with' },
172{ oid => '68',
173  proname => 'xideq', proleakproof => 't', prorettype => 'bool',
174  proargtypes => 'xid xid', prosrc => 'xideq' },
175{ oid => '3308',
176  proname => 'xidneq', proleakproof => 't', prorettype => 'bool',
177  proargtypes => 'xid xid', prosrc => 'xidneq' },
178{ oid => '5084',
179  proname => 'xid8eq', proleakproof => 't', prorettype => 'bool',
180  proargtypes => 'xid8 xid8', prosrc => 'xid8eq' },
181{ oid => '5085',
182  proname => 'xid8ne', proleakproof => 't', prorettype => 'bool',
183  proargtypes => 'xid8 xid8', prosrc => 'xid8ne' },
184{ oid => '5034',
185  proname => 'xid8lt', proleakproof => 't', prorettype => 'bool',
186  proargtypes => 'xid8 xid8', prosrc => 'xid8lt' },
187{ oid => '5035',
188  proname => 'xid8gt', proleakproof => 't', prorettype => 'bool',
189  proargtypes => 'xid8 xid8', prosrc => 'xid8gt' },
190{ oid => '5036',
191  proname => 'xid8le', proleakproof => 't', prorettype => 'bool',
192  proargtypes => 'xid8 xid8', prosrc => 'xid8le' },
193{ oid => '5037',
194  proname => 'xid8ge', proleakproof => 't', prorettype => 'bool',
195  proargtypes => 'xid8 xid8', prosrc => 'xid8ge' },
196{ oid => '5096', descr => 'less-equal-greater',
197  proname => 'xid8cmp', proleakproof => 't', prorettype => 'int4',
198  proargtypes => 'xid8 xid8', prosrc => 'xid8cmp' },
199{ oid => '5071', descr => 'convert xid8 to xid',
200  proname => 'xid', prorettype => 'xid', proargtypes => 'xid8',
201  prosrc => 'xid8toxid' },
202{ oid => '69',
203  proname => 'cideq', proleakproof => 't', prorettype => 'bool',
204  proargtypes => 'cid cid', prosrc => 'cideq' },
205{ oid => '70',
206  proname => 'charne', proleakproof => 't', prorettype => 'bool',
207  proargtypes => 'char char', prosrc => 'charne' },
208{ oid => '1246',
209  proname => 'charlt', proleakproof => 't', prorettype => 'bool',
210  proargtypes => 'char char', prosrc => 'charlt' },
211{ oid => '72',
212  proname => 'charle', proleakproof => 't', prorettype => 'bool',
213  proargtypes => 'char char', prosrc => 'charle' },
214{ oid => '73',
215  proname => 'chargt', proleakproof => 't', prorettype => 'bool',
216  proargtypes => 'char char', prosrc => 'chargt' },
217{ oid => '74',
218  proname => 'charge', proleakproof => 't', prorettype => 'bool',
219  proargtypes => 'char char', prosrc => 'charge' },
220{ oid => '77', descr => 'convert char to int4',
221  proname => 'int4', prorettype => 'int4', proargtypes => 'char',
222  prosrc => 'chartoi4' },
223{ oid => '78', descr => 'convert int4 to char',
224  proname => 'char', prorettype => 'char', proargtypes => 'int4',
225  prosrc => 'i4tochar' },
226
227{ oid => '79',
228  proname => 'nameregexeq', prosupport => 'textregexeq_support',
229  prorettype => 'bool', proargtypes => 'name text', prosrc => 'nameregexeq' },
230{ oid => '1252',
231  proname => 'nameregexne', prorettype => 'bool', proargtypes => 'name text',
232  prosrc => 'nameregexne' },
233{ oid => '1254',
234  proname => 'textregexeq', prosupport => 'textregexeq_support',
235  prorettype => 'bool', proargtypes => 'text text', prosrc => 'textregexeq' },
236{ oid => '1256',
237  proname => 'textregexne', prorettype => 'bool', proargtypes => 'text text',
238  prosrc => 'textregexne' },
239{ oid => '1364', descr => 'planner support for textregexeq',
240  proname => 'textregexeq_support', prorettype => 'internal',
241  proargtypes => 'internal', prosrc => 'textregexeq_support' },
242
243{ oid => '1257', descr => 'length',
244  proname => 'textlen', prorettype => 'int4', proargtypes => 'text',
245  prosrc => 'textlen' },
246{ oid => '1258',
247  proname => 'textcat', prorettype => 'text', proargtypes => 'text text',
248  prosrc => 'textcat' },
249
250{ oid => '84',
251  proname => 'boolne', proleakproof => 't', prorettype => 'bool',
252  proargtypes => 'bool bool', prosrc => 'boolne' },
253{ oid => '89', descr => 'PostgreSQL version string',
254  proname => 'version', provolatile => 's', prorettype => 'text',
255  proargtypes => '', prosrc => 'pgsql_version' },
256
257{ oid => '86', descr => 'I/O',
258  proname => 'pg_ddl_command_in', prorettype => 'pg_ddl_command',
259  proargtypes => 'cstring', prosrc => 'pg_ddl_command_in' },
260{ oid => '87', descr => 'I/O',
261  proname => 'pg_ddl_command_out', prorettype => 'cstring',
262  proargtypes => 'pg_ddl_command', prosrc => 'pg_ddl_command_out' },
263{ oid => '88', descr => 'I/O',
264  proname => 'pg_ddl_command_recv', prorettype => 'pg_ddl_command',
265  proargtypes => 'internal', prosrc => 'pg_ddl_command_recv' },
266{ oid => '90', descr => 'I/O',
267  proname => 'pg_ddl_command_send', prorettype => 'bytea',
268  proargtypes => 'pg_ddl_command', prosrc => 'pg_ddl_command_send' },
269
270# OIDS 100 - 199
271
272{ oid => '101', descr => 'restriction selectivity of = and related operators',
273  proname => 'eqsel', provolatile => 's', prorettype => 'float8',
274  proargtypes => 'internal oid internal int4', prosrc => 'eqsel' },
275{ oid => '102',
276  descr => 'restriction selectivity of <> and related operators',
277  proname => 'neqsel', provolatile => 's', prorettype => 'float8',
278  proargtypes => 'internal oid internal int4', prosrc => 'neqsel' },
279{ oid => '103',
280  descr => 'restriction selectivity of < and related operators on scalar datatypes',
281  proname => 'scalarltsel', provolatile => 's', prorettype => 'float8',
282  proargtypes => 'internal oid internal int4', prosrc => 'scalarltsel' },
283{ oid => '104',
284  descr => 'restriction selectivity of > and related operators on scalar datatypes',
285  proname => 'scalargtsel', provolatile => 's', prorettype => 'float8',
286  proargtypes => 'internal oid internal int4', prosrc => 'scalargtsel' },
287{ oid => '105', descr => 'join selectivity of = and related operators',
288  proname => 'eqjoinsel', provolatile => 's', prorettype => 'float8',
289  proargtypes => 'internal oid internal int2 internal', prosrc => 'eqjoinsel' },
290{ oid => '106', descr => 'join selectivity of <> and related operators',
291  proname => 'neqjoinsel', provolatile => 's', prorettype => 'float8',
292  proargtypes => 'internal oid internal int2 internal',
293  prosrc => 'neqjoinsel' },
294{ oid => '107',
295  descr => 'join selectivity of < and related operators on scalar datatypes',
296  proname => 'scalarltjoinsel', provolatile => 's', prorettype => 'float8',
297  proargtypes => 'internal oid internal int2 internal',
298  prosrc => 'scalarltjoinsel' },
299{ oid => '108',
300  descr => 'join selectivity of > and related operators on scalar datatypes',
301  proname => 'scalargtjoinsel', provolatile => 's', prorettype => 'float8',
302  proargtypes => 'internal oid internal int2 internal',
303  prosrc => 'scalargtjoinsel' },
304
305{ oid => '336',
306  descr => 'restriction selectivity of <= and related operators on scalar datatypes',
307  proname => 'scalarlesel', provolatile => 's', prorettype => 'float8',
308  proargtypes => 'internal oid internal int4', prosrc => 'scalarlesel' },
309{ oid => '337',
310  descr => 'restriction selectivity of >= and related operators on scalar datatypes',
311  proname => 'scalargesel', provolatile => 's', prorettype => 'float8',
312  proargtypes => 'internal oid internal int4', prosrc => 'scalargesel' },
313{ oid => '386',
314  descr => 'join selectivity of <= and related operators on scalar datatypes',
315  proname => 'scalarlejoinsel', provolatile => 's', prorettype => 'float8',
316  proargtypes => 'internal oid internal int2 internal',
317  prosrc => 'scalarlejoinsel' },
318{ oid => '398',
319  descr => 'join selectivity of >= and related operators on scalar datatypes',
320  proname => 'scalargejoinsel', provolatile => 's', prorettype => 'float8',
321  proargtypes => 'internal oid internal int2 internal',
322  prosrc => 'scalargejoinsel' },
323
324{ oid => '109', descr => 'I/O',
325  proname => 'unknownin', prorettype => 'unknown', proargtypes => 'cstring',
326  prosrc => 'unknownin' },
327{ oid => '110', descr => 'I/O',
328  proname => 'unknownout', prorettype => 'cstring', proargtypes => 'unknown',
329  prosrc => 'unknownout' },
330{ oid => '111',
331  descr => 'implementation of deprecated ! and !! factorial operators',
332  proname => 'numeric_fac', prorettype => 'numeric', proargtypes => 'int8',
333  prosrc => 'numeric_fac' },
334
335{ oid => '115',
336  proname => 'box_above_eq', prorettype => 'bool', proargtypes => 'box box',
337  prosrc => 'box_above_eq' },
338{ oid => '116',
339  proname => 'box_below_eq', prorettype => 'bool', proargtypes => 'box box',
340  prosrc => 'box_below_eq' },
341
342{ oid => '117', descr => 'I/O',
343  proname => 'point_in', prorettype => 'point', proargtypes => 'cstring',
344  prosrc => 'point_in' },
345{ oid => '118', descr => 'I/O',
346  proname => 'point_out', prorettype => 'cstring', proargtypes => 'point',
347  prosrc => 'point_out' },
348{ oid => '119', descr => 'I/O',
349  proname => 'lseg_in', prorettype => 'lseg', proargtypes => 'cstring',
350  prosrc => 'lseg_in' },
351{ oid => '120', descr => 'I/O',
352  proname => 'lseg_out', prorettype => 'cstring', proargtypes => 'lseg',
353  prosrc => 'lseg_out' },
354{ oid => '121', descr => 'I/O',
355  proname => 'path_in', prorettype => 'path', proargtypes => 'cstring',
356  prosrc => 'path_in' },
357{ oid => '122', descr => 'I/O',
358  proname => 'path_out', prorettype => 'cstring', proargtypes => 'path',
359  prosrc => 'path_out' },
360{ oid => '123', descr => 'I/O',
361  proname => 'box_in', prorettype => 'box', proargtypes => 'cstring',
362  prosrc => 'box_in' },
363{ oid => '124', descr => 'I/O',
364  proname => 'box_out', prorettype => 'cstring', proargtypes => 'box',
365  prosrc => 'box_out' },
366{ oid => '125',
367  proname => 'box_overlap', prorettype => 'bool', proargtypes => 'box box',
368  prosrc => 'box_overlap' },
369{ oid => '126',
370  proname => 'box_ge', prorettype => 'bool', proargtypes => 'box box',
371  prosrc => 'box_ge' },
372{ oid => '127',
373  proname => 'box_gt', prorettype => 'bool', proargtypes => 'box box',
374  prosrc => 'box_gt' },
375{ oid => '128',
376  proname => 'box_eq', prorettype => 'bool', proargtypes => 'box box',
377  prosrc => 'box_eq' },
378{ oid => '129',
379  proname => 'box_lt', prorettype => 'bool', proargtypes => 'box box',
380  prosrc => 'box_lt' },
381{ oid => '130',
382  proname => 'box_le', prorettype => 'bool', proargtypes => 'box box',
383  prosrc => 'box_le' },
384{ oid => '131',
385  proname => 'point_above', prorettype => 'bool', proargtypes => 'point point',
386  prosrc => 'point_above' },
387{ oid => '132',
388  proname => 'point_left', prorettype => 'bool', proargtypes => 'point point',
389  prosrc => 'point_left' },
390{ oid => '133',
391  proname => 'point_right', prorettype => 'bool', proargtypes => 'point point',
392  prosrc => 'point_right' },
393{ oid => '134',
394  proname => 'point_below', prorettype => 'bool', proargtypes => 'point point',
395  prosrc => 'point_below' },
396{ oid => '135',
397  proname => 'point_eq', prorettype => 'bool', proargtypes => 'point point',
398  prosrc => 'point_eq' },
399{ oid => '136',
400  proname => 'on_pb', prorettype => 'bool', proargtypes => 'point box',
401  prosrc => 'on_pb' },
402{ oid => '137',
403  proname => 'on_ppath', prorettype => 'bool', proargtypes => 'point path',
404  prosrc => 'on_ppath' },
405{ oid => '138',
406  proname => 'box_center', prorettype => 'point', proargtypes => 'box',
407  prosrc => 'box_center' },
408{ oid => '139',
409  descr => 'restriction selectivity for area-comparison operators',
410  proname => 'areasel', provolatile => 's', prorettype => 'float8',
411  proargtypes => 'internal oid internal int4', prosrc => 'areasel' },
412{ oid => '140', descr => 'join selectivity for area-comparison operators',
413  proname => 'areajoinsel', provolatile => 's', prorettype => 'float8',
414  proargtypes => 'internal oid internal int2 internal',
415  prosrc => 'areajoinsel' },
416{ oid => '141',
417  proname => 'int4mul', prorettype => 'int4', proargtypes => 'int4 int4',
418  prosrc => 'int4mul' },
419{ oid => '144',
420  proname => 'int4ne', proleakproof => 't', prorettype => 'bool',
421  proargtypes => 'int4 int4', prosrc => 'int4ne' },
422{ oid => '145',
423  proname => 'int2ne', proleakproof => 't', prorettype => 'bool',
424  proargtypes => 'int2 int2', prosrc => 'int2ne' },
425{ oid => '146',
426  proname => 'int2gt', proleakproof => 't', prorettype => 'bool',
427  proargtypes => 'int2 int2', prosrc => 'int2gt' },
428{ oid => '147',
429  proname => 'int4gt', proleakproof => 't', prorettype => 'bool',
430  proargtypes => 'int4 int4', prosrc => 'int4gt' },
431{ oid => '148',
432  proname => 'int2le', proleakproof => 't', prorettype => 'bool',
433  proargtypes => 'int2 int2', prosrc => 'int2le' },
434{ oid => '149',
435  proname => 'int4le', proleakproof => 't', prorettype => 'bool',
436  proargtypes => 'int4 int4', prosrc => 'int4le' },
437{ oid => '150',
438  proname => 'int4ge', proleakproof => 't', prorettype => 'bool',
439  proargtypes => 'int4 int4', prosrc => 'int4ge' },
440{ oid => '151',
441  proname => 'int2ge', proleakproof => 't', prorettype => 'bool',
442  proargtypes => 'int2 int2', prosrc => 'int2ge' },
443{ oid => '152',
444  proname => 'int2mul', prorettype => 'int2', proargtypes => 'int2 int2',
445  prosrc => 'int2mul' },
446{ oid => '153',
447  proname => 'int2div', prorettype => 'int2', proargtypes => 'int2 int2',
448  prosrc => 'int2div' },
449{ oid => '154',
450  proname => 'int4div', prorettype => 'int4', proargtypes => 'int4 int4',
451  prosrc => 'int4div' },
452{ oid => '155',
453  proname => 'int2mod', prorettype => 'int2', proargtypes => 'int2 int2',
454  prosrc => 'int2mod' },
455{ oid => '156',
456  proname => 'int4mod', prorettype => 'int4', proargtypes => 'int4 int4',
457  prosrc => 'int4mod' },
458{ oid => '157',
459  proname => 'textne', proleakproof => 't', prorettype => 'bool',
460  proargtypes => 'text text', prosrc => 'textne' },
461{ oid => '158',
462  proname => 'int24eq', proleakproof => 't', prorettype => 'bool',
463  proargtypes => 'int2 int4', prosrc => 'int24eq' },
464{ oid => '159',
465  proname => 'int42eq', proleakproof => 't', prorettype => 'bool',
466  proargtypes => 'int4 int2', prosrc => 'int42eq' },
467{ oid => '160',
468  proname => 'int24lt', proleakproof => 't', prorettype => 'bool',
469  proargtypes => 'int2 int4', prosrc => 'int24lt' },
470{ oid => '161',
471  proname => 'int42lt', proleakproof => 't', prorettype => 'bool',
472  proargtypes => 'int4 int2', prosrc => 'int42lt' },
473{ oid => '162',
474  proname => 'int24gt', proleakproof => 't', prorettype => 'bool',
475  proargtypes => 'int2 int4', prosrc => 'int24gt' },
476{ oid => '163',
477  proname => 'int42gt', proleakproof => 't', prorettype => 'bool',
478  proargtypes => 'int4 int2', prosrc => 'int42gt' },
479{ oid => '164',
480  proname => 'int24ne', proleakproof => 't', prorettype => 'bool',
481  proargtypes => 'int2 int4', prosrc => 'int24ne' },
482{ oid => '165',
483  proname => 'int42ne', proleakproof => 't', prorettype => 'bool',
484  proargtypes => 'int4 int2', prosrc => 'int42ne' },
485{ oid => '166',
486  proname => 'int24le', proleakproof => 't', prorettype => 'bool',
487  proargtypes => 'int2 int4', prosrc => 'int24le' },
488{ oid => '167',
489  proname => 'int42le', proleakproof => 't', prorettype => 'bool',
490  proargtypes => 'int4 int2', prosrc => 'int42le' },
491{ oid => '168',
492  proname => 'int24ge', proleakproof => 't', prorettype => 'bool',
493  proargtypes => 'int2 int4', prosrc => 'int24ge' },
494{ oid => '169',
495  proname => 'int42ge', proleakproof => 't', prorettype => 'bool',
496  proargtypes => 'int4 int2', prosrc => 'int42ge' },
497{ oid => '170',
498  proname => 'int24mul', prorettype => 'int4', proargtypes => 'int2 int4',
499  prosrc => 'int24mul' },
500{ oid => '171',
501  proname => 'int42mul', prorettype => 'int4', proargtypes => 'int4 int2',
502  prosrc => 'int42mul' },
503{ oid => '172',
504  proname => 'int24div', prorettype => 'int4', proargtypes => 'int2 int4',
505  prosrc => 'int24div' },
506{ oid => '173',
507  proname => 'int42div', prorettype => 'int4', proargtypes => 'int4 int2',
508  prosrc => 'int42div' },
509{ oid => '176',
510  proname => 'int2pl', prorettype => 'int2', proargtypes => 'int2 int2',
511  prosrc => 'int2pl' },
512{ oid => '177',
513  proname => 'int4pl', prorettype => 'int4', proargtypes => 'int4 int4',
514  prosrc => 'int4pl' },
515{ oid => '178',
516  proname => 'int24pl', prorettype => 'int4', proargtypes => 'int2 int4',
517  prosrc => 'int24pl' },
518{ oid => '179',
519  proname => 'int42pl', prorettype => 'int4', proargtypes => 'int4 int2',
520  prosrc => 'int42pl' },
521{ oid => '180',
522  proname => 'int2mi', prorettype => 'int2', proargtypes => 'int2 int2',
523  prosrc => 'int2mi' },
524{ oid => '181',
525  proname => 'int4mi', prorettype => 'int4', proargtypes => 'int4 int4',
526  prosrc => 'int4mi' },
527{ oid => '182',
528  proname => 'int24mi', prorettype => 'int4', proargtypes => 'int2 int4',
529  prosrc => 'int24mi' },
530{ oid => '183',
531  proname => 'int42mi', prorettype => 'int4', proargtypes => 'int4 int2',
532  prosrc => 'int42mi' },
533{ oid => '184',
534  proname => 'oideq', proleakproof => 't', prorettype => 'bool',
535  proargtypes => 'oid oid', prosrc => 'oideq' },
536{ oid => '185',
537  proname => 'oidne', proleakproof => 't', prorettype => 'bool',
538  proargtypes => 'oid oid', prosrc => 'oidne' },
539{ oid => '186',
540  proname => 'box_same', prorettype => 'bool', proargtypes => 'box box',
541  prosrc => 'box_same' },
542{ oid => '187',
543  proname => 'box_contain', prorettype => 'bool', proargtypes => 'box box',
544  prosrc => 'box_contain' },
545{ oid => '188',
546  proname => 'box_left', prorettype => 'bool', proargtypes => 'box box',
547  prosrc => 'box_left' },
548{ oid => '189',
549  proname => 'box_overleft', prorettype => 'bool', proargtypes => 'box box',
550  prosrc => 'box_overleft' },
551{ oid => '190',
552  proname => 'box_overright', prorettype => 'bool', proargtypes => 'box box',
553  prosrc => 'box_overright' },
554{ oid => '191',
555  proname => 'box_right', prorettype => 'bool', proargtypes => 'box box',
556  prosrc => 'box_right' },
557{ oid => '192',
558  proname => 'box_contained', prorettype => 'bool', proargtypes => 'box box',
559  prosrc => 'box_contained' },
560{ oid => '193',
561  proname => 'box_contain_pt', prorettype => 'bool', proargtypes => 'box point',
562  prosrc => 'box_contain_pt' },
563
564{ oid => '195', descr => 'I/O',
565  proname => 'pg_node_tree_in', prorettype => 'pg_node_tree',
566  proargtypes => 'cstring', prosrc => 'pg_node_tree_in' },
567{ oid => '196', descr => 'I/O',
568  proname => 'pg_node_tree_out', prorettype => 'cstring',
569  proargtypes => 'pg_node_tree', prosrc => 'pg_node_tree_out' },
570{ oid => '197', descr => 'I/O',
571  proname => 'pg_node_tree_recv', provolatile => 's',
572  prorettype => 'pg_node_tree', proargtypes => 'internal',
573  prosrc => 'pg_node_tree_recv' },
574{ oid => '198', descr => 'I/O',
575  proname => 'pg_node_tree_send', provolatile => 's', prorettype => 'bytea',
576  proargtypes => 'pg_node_tree', prosrc => 'pg_node_tree_send' },
577
578# OIDS 200 - 299
579
580{ oid => '200', descr => 'I/O',
581  proname => 'float4in', prorettype => 'float4', proargtypes => 'cstring',
582  prosrc => 'float4in' },
583{ oid => '201', descr => 'I/O',
584  proname => 'float4out', prorettype => 'cstring', proargtypes => 'float4',
585  prosrc => 'float4out' },
586{ oid => '202',
587  proname => 'float4mul', prorettype => 'float4',
588  proargtypes => 'float4 float4', prosrc => 'float4mul' },
589{ oid => '203',
590  proname => 'float4div', prorettype => 'float4',
591  proargtypes => 'float4 float4', prosrc => 'float4div' },
592{ oid => '204',
593  proname => 'float4pl', prorettype => 'float4', proargtypes => 'float4 float4',
594  prosrc => 'float4pl' },
595{ oid => '205',
596  proname => 'float4mi', prorettype => 'float4', proargtypes => 'float4 float4',
597  prosrc => 'float4mi' },
598{ oid => '206',
599  proname => 'float4um', prorettype => 'float4', proargtypes => 'float4',
600  prosrc => 'float4um' },
601{ oid => '207',
602  proname => 'float4abs', prorettype => 'float4', proargtypes => 'float4',
603  prosrc => 'float4abs' },
604{ oid => '208', descr => 'aggregate transition function',
605  proname => 'float4_accum', prorettype => '_float8',
606  proargtypes => '_float8 float4', prosrc => 'float4_accum' },
607{ oid => '209', descr => 'larger of two',
608  proname => 'float4larger', prorettype => 'float4',
609  proargtypes => 'float4 float4', prosrc => 'float4larger' },
610{ oid => '211', descr => 'smaller of two',
611  proname => 'float4smaller', prorettype => 'float4',
612  proargtypes => 'float4 float4', prosrc => 'float4smaller' },
613
614{ oid => '212',
615  proname => 'int4um', prorettype => 'int4', proargtypes => 'int4',
616  prosrc => 'int4um' },
617{ oid => '213',
618  proname => 'int2um', prorettype => 'int2', proargtypes => 'int2',
619  prosrc => 'int2um' },
620
621{ oid => '214', descr => 'I/O',
622  proname => 'float8in', prorettype => 'float8', proargtypes => 'cstring',
623  prosrc => 'float8in' },
624{ oid => '215', descr => 'I/O',
625  proname => 'float8out', prorettype => 'cstring', proargtypes => 'float8',
626  prosrc => 'float8out' },
627{ oid => '216',
628  proname => 'float8mul', prorettype => 'float8',
629  proargtypes => 'float8 float8', prosrc => 'float8mul' },
630{ oid => '217',
631  proname => 'float8div', prorettype => 'float8',
632  proargtypes => 'float8 float8', prosrc => 'float8div' },
633{ oid => '218',
634  proname => 'float8pl', prorettype => 'float8', proargtypes => 'float8 float8',
635  prosrc => 'float8pl' },
636{ oid => '219',
637  proname => 'float8mi', prorettype => 'float8', proargtypes => 'float8 float8',
638  prosrc => 'float8mi' },
639{ oid => '220',
640  proname => 'float8um', prorettype => 'float8', proargtypes => 'float8',
641  prosrc => 'float8um' },
642{ oid => '221',
643  proname => 'float8abs', prorettype => 'float8', proargtypes => 'float8',
644  prosrc => 'float8abs' },
645{ oid => '222', descr => 'aggregate transition function',
646  proname => 'float8_accum', prorettype => '_float8',
647  proargtypes => '_float8 float8', prosrc => 'float8_accum' },
648{ oid => '276', descr => 'aggregate combine function',
649  proname => 'float8_combine', prorettype => '_float8',
650  proargtypes => '_float8 _float8', prosrc => 'float8_combine' },
651{ oid => '223', descr => 'larger of two',
652  proname => 'float8larger', prorettype => 'float8',
653  proargtypes => 'float8 float8', prosrc => 'float8larger' },
654{ oid => '224', descr => 'smaller of two',
655  proname => 'float8smaller', prorettype => 'float8',
656  proargtypes => 'float8 float8', prosrc => 'float8smaller' },
657
658{ oid => '225',
659  proname => 'lseg_center', prorettype => 'point', proargtypes => 'lseg',
660  prosrc => 'lseg_center' },
661{ oid => '226',
662  proname => 'path_center', prorettype => 'point', proargtypes => 'path',
663  prosrc => 'path_center' },
664{ oid => '227',
665  proname => 'poly_center', prorettype => 'point', proargtypes => 'polygon',
666  prosrc => 'poly_center' },
667
668{ oid => '228', descr => 'round to nearest integer',
669  proname => 'dround', prorettype => 'float8', proargtypes => 'float8',
670  prosrc => 'dround' },
671{ oid => '229', descr => 'truncate to integer',
672  proname => 'dtrunc', prorettype => 'float8', proargtypes => 'float8',
673  prosrc => 'dtrunc' },
674{ oid => '2308', descr => 'nearest integer >= value',
675  proname => 'ceil', prorettype => 'float8', proargtypes => 'float8',
676  prosrc => 'dceil' },
677{ oid => '2320', descr => 'nearest integer >= value',
678  proname => 'ceiling', prorettype => 'float8', proargtypes => 'float8',
679  prosrc => 'dceil' },
680{ oid => '2309', descr => 'nearest integer <= value',
681  proname => 'floor', prorettype => 'float8', proargtypes => 'float8',
682  prosrc => 'dfloor' },
683{ oid => '2310', descr => 'sign of value',
684  proname => 'sign', prorettype => 'float8', proargtypes => 'float8',
685  prosrc => 'dsign' },
686{ oid => '230',
687  proname => 'dsqrt', prorettype => 'float8', proargtypes => 'float8',
688  prosrc => 'dsqrt' },
689{ oid => '231',
690  proname => 'dcbrt', prorettype => 'float8', proargtypes => 'float8',
691  prosrc => 'dcbrt' },
692{ oid => '232',
693  proname => 'dpow', prorettype => 'float8', proargtypes => 'float8 float8',
694  prosrc => 'dpow' },
695{ oid => '233', descr => 'natural exponential (e^x)',
696  proname => 'dexp', prorettype => 'float8', proargtypes => 'float8',
697  prosrc => 'dexp' },
698{ oid => '234', descr => 'natural logarithm',
699  proname => 'dlog1', prorettype => 'float8', proargtypes => 'float8',
700  prosrc => 'dlog1' },
701{ oid => '235', descr => 'convert int2 to float8',
702  proname => 'float8', prorettype => 'float8', proargtypes => 'int2',
703  prosrc => 'i2tod' },
704{ oid => '236', descr => 'convert int2 to float4',
705  proname => 'float4', prorettype => 'float4', proargtypes => 'int2',
706  prosrc => 'i2tof' },
707{ oid => '237', descr => 'convert float8 to int2',
708  proname => 'int2', prorettype => 'int2', proargtypes => 'float8',
709  prosrc => 'dtoi2' },
710{ oid => '238', descr => 'convert float4 to int2',
711  proname => 'int2', prorettype => 'int2', proargtypes => 'float4',
712  prosrc => 'ftoi2' },
713{ oid => '239',
714  proname => 'line_distance', prorettype => 'float8',
715  proargtypes => 'line line', prosrc => 'line_distance' },
716
717{ oid => '240',
718  proname => 'nameeqtext', proleakproof => 't', prorettype => 'bool',
719  proargtypes => 'name text', prosrc => 'nameeqtext' },
720{ oid => '241',
721  proname => 'namelttext', proleakproof => 't', prorettype => 'bool',
722  proargtypes => 'name text', prosrc => 'namelttext' },
723{ oid => '242',
724  proname => 'nameletext', proleakproof => 't', prorettype => 'bool',
725  proargtypes => 'name text', prosrc => 'nameletext' },
726{ oid => '243',
727  proname => 'namegetext', proleakproof => 't', prorettype => 'bool',
728  proargtypes => 'name text', prosrc => 'namegetext' },
729{ oid => '244',
730  proname => 'namegttext', proleakproof => 't', prorettype => 'bool',
731  proargtypes => 'name text', prosrc => 'namegttext' },
732{ oid => '245',
733  proname => 'namenetext', proleakproof => 't', prorettype => 'bool',
734  proargtypes => 'name text', prosrc => 'namenetext' },
735{ oid => '246', descr => 'less-equal-greater',
736  proname => 'btnametextcmp', proleakproof => 't', prorettype => 'int4',
737  proargtypes => 'name text', prosrc => 'btnametextcmp' },
738{ oid => '247',
739  proname => 'texteqname', proleakproof => 't', prorettype => 'bool',
740  proargtypes => 'text name', prosrc => 'texteqname' },
741{ oid => '248',
742  proname => 'textltname', proleakproof => 't', prorettype => 'bool',
743  proargtypes => 'text name', prosrc => 'textltname' },
744{ oid => '249',
745  proname => 'textlename', proleakproof => 't', prorettype => 'bool',
746  proargtypes => 'text name', prosrc => 'textlename' },
747{ oid => '250',
748  proname => 'textgename', proleakproof => 't', prorettype => 'bool',
749  proargtypes => 'text name', prosrc => 'textgename' },
750{ oid => '251',
751  proname => 'textgtname', proleakproof => 't', prorettype => 'bool',
752  proargtypes => 'text name', prosrc => 'textgtname' },
753{ oid => '252',
754  proname => 'textnename', proleakproof => 't', prorettype => 'bool',
755  proargtypes => 'text name', prosrc => 'textnename' },
756{ oid => '253', descr => 'less-equal-greater',
757  proname => 'bttextnamecmp', proleakproof => 't', prorettype => 'int4',
758  proargtypes => 'text name', prosrc => 'bttextnamecmp' },
759
760{ oid => '266', descr => 'concatenate name and oid',
761  proname => 'nameconcatoid', prorettype => 'name', proargtypes => 'name oid',
762  prosrc => 'nameconcatoid' },
763
764{ oid => '274',
765  descr => 'current date and time - increments during transactions',
766  proname => 'timeofday', provolatile => 'v', prorettype => 'text',
767  proargtypes => '', prosrc => 'timeofday' },
768
769{ oid => '277',
770  proname => 'inter_sl', prorettype => 'bool', proargtypes => 'lseg line',
771  prosrc => 'inter_sl' },
772{ oid => '278',
773  proname => 'inter_lb', prorettype => 'bool', proargtypes => 'line box',
774  prosrc => 'inter_lb' },
775
776{ oid => '279',
777  proname => 'float48mul', prorettype => 'float8',
778  proargtypes => 'float4 float8', prosrc => 'float48mul' },
779{ oid => '280',
780  proname => 'float48div', prorettype => 'float8',
781  proargtypes => 'float4 float8', prosrc => 'float48div' },
782{ oid => '281',
783  proname => 'float48pl', prorettype => 'float8',
784  proargtypes => 'float4 float8', prosrc => 'float48pl' },
785{ oid => '282',
786  proname => 'float48mi', prorettype => 'float8',
787  proargtypes => 'float4 float8', prosrc => 'float48mi' },
788{ oid => '283',
789  proname => 'float84mul', prorettype => 'float8',
790  proargtypes => 'float8 float4', prosrc => 'float84mul' },
791{ oid => '284',
792  proname => 'float84div', prorettype => 'float8',
793  proargtypes => 'float8 float4', prosrc => 'float84div' },
794{ oid => '285',
795  proname => 'float84pl', prorettype => 'float8',
796  proargtypes => 'float8 float4', prosrc => 'float84pl' },
797{ oid => '286',
798  proname => 'float84mi', prorettype => 'float8',
799  proargtypes => 'float8 float4', prosrc => 'float84mi' },
800
801{ oid => '287',
802  proname => 'float4eq', proleakproof => 't', prorettype => 'bool',
803  proargtypes => 'float4 float4', prosrc => 'float4eq' },
804{ oid => '288',
805  proname => 'float4ne', proleakproof => 't', prorettype => 'bool',
806  proargtypes => 'float4 float4', prosrc => 'float4ne' },
807{ oid => '289',
808  proname => 'float4lt', proleakproof => 't', prorettype => 'bool',
809  proargtypes => 'float4 float4', prosrc => 'float4lt' },
810{ oid => '290',
811  proname => 'float4le', proleakproof => 't', prorettype => 'bool',
812  proargtypes => 'float4 float4', prosrc => 'float4le' },
813{ oid => '291',
814  proname => 'float4gt', proleakproof => 't', prorettype => 'bool',
815  proargtypes => 'float4 float4', prosrc => 'float4gt' },
816{ oid => '292',
817  proname => 'float4ge', proleakproof => 't', prorettype => 'bool',
818  proargtypes => 'float4 float4', prosrc => 'float4ge' },
819
820{ oid => '293',
821  proname => 'float8eq', proleakproof => 't', prorettype => 'bool',
822  proargtypes => 'float8 float8', prosrc => 'float8eq' },
823{ oid => '294',
824  proname => 'float8ne', proleakproof => 't', prorettype => 'bool',
825  proargtypes => 'float8 float8', prosrc => 'float8ne' },
826{ oid => '295',
827  proname => 'float8lt', proleakproof => 't', prorettype => 'bool',
828  proargtypes => 'float8 float8', prosrc => 'float8lt' },
829{ oid => '296',
830  proname => 'float8le', proleakproof => 't', prorettype => 'bool',
831  proargtypes => 'float8 float8', prosrc => 'float8le' },
832{ oid => '297',
833  proname => 'float8gt', proleakproof => 't', prorettype => 'bool',
834  proargtypes => 'float8 float8', prosrc => 'float8gt' },
835{ oid => '298',
836  proname => 'float8ge', proleakproof => 't', prorettype => 'bool',
837  proargtypes => 'float8 float8', prosrc => 'float8ge' },
838
839{ oid => '299',
840  proname => 'float48eq', proleakproof => 't', prorettype => 'bool',
841  proargtypes => 'float4 float8', prosrc => 'float48eq' },
842
843# OIDS 300 - 399
844
845{ oid => '300',
846  proname => 'float48ne', proleakproof => 't', prorettype => 'bool',
847  proargtypes => 'float4 float8', prosrc => 'float48ne' },
848{ oid => '301',
849  proname => 'float48lt', proleakproof => 't', prorettype => 'bool',
850  proargtypes => 'float4 float8', prosrc => 'float48lt' },
851{ oid => '302',
852  proname => 'float48le', proleakproof => 't', prorettype => 'bool',
853  proargtypes => 'float4 float8', prosrc => 'float48le' },
854{ oid => '303',
855  proname => 'float48gt', proleakproof => 't', prorettype => 'bool',
856  proargtypes => 'float4 float8', prosrc => 'float48gt' },
857{ oid => '304',
858  proname => 'float48ge', proleakproof => 't', prorettype => 'bool',
859  proargtypes => 'float4 float8', prosrc => 'float48ge' },
860{ oid => '305',
861  proname => 'float84eq', proleakproof => 't', prorettype => 'bool',
862  proargtypes => 'float8 float4', prosrc => 'float84eq' },
863{ oid => '306',
864  proname => 'float84ne', proleakproof => 't', prorettype => 'bool',
865  proargtypes => 'float8 float4', prosrc => 'float84ne' },
866{ oid => '307',
867  proname => 'float84lt', proleakproof => 't', prorettype => 'bool',
868  proargtypes => 'float8 float4', prosrc => 'float84lt' },
869{ oid => '308',
870  proname => 'float84le', proleakproof => 't', prorettype => 'bool',
871  proargtypes => 'float8 float4', prosrc => 'float84le' },
872{ oid => '309',
873  proname => 'float84gt', proleakproof => 't', prorettype => 'bool',
874  proargtypes => 'float8 float4', prosrc => 'float84gt' },
875{ oid => '310',
876  proname => 'float84ge', proleakproof => 't', prorettype => 'bool',
877  proargtypes => 'float8 float4', prosrc => 'float84ge' },
878{ oid => '320', descr => 'bucket number of operand in equal-width histogram',
879  proname => 'width_bucket', prorettype => 'int4',
880  proargtypes => 'float8 float8 float8 int4', prosrc => 'width_bucket_float8' },
881
882{ oid => '311', descr => 'convert float4 to float8',
883  proname => 'float8', prorettype => 'float8', proargtypes => 'float4',
884  prosrc => 'ftod' },
885{ oid => '312', descr => 'convert float8 to float4',
886  proname => 'float4', prorettype => 'float4', proargtypes => 'float8',
887  prosrc => 'dtof' },
888{ oid => '313', descr => 'convert int2 to int4',
889  proname => 'int4', prorettype => 'int4', proargtypes => 'int2',
890  prosrc => 'i2toi4' },
891{ oid => '314', descr => 'convert int4 to int2',
892  proname => 'int2', prorettype => 'int2', proargtypes => 'int4',
893  prosrc => 'i4toi2' },
894{ oid => '316', descr => 'convert int4 to float8',
895  proname => 'float8', prorettype => 'float8', proargtypes => 'int4',
896  prosrc => 'i4tod' },
897{ oid => '317', descr => 'convert float8 to int4',
898  proname => 'int4', prorettype => 'int4', proargtypes => 'float8',
899  prosrc => 'dtoi4' },
900{ oid => '318', descr => 'convert int4 to float4',
901  proname => 'float4', prorettype => 'float4', proargtypes => 'int4',
902  prosrc => 'i4tof' },
903{ oid => '319', descr => 'convert float4 to int4',
904  proname => 'int4', prorettype => 'int4', proargtypes => 'float4',
905  prosrc => 'ftoi4' },
906
907# Table access method handlers
908{ oid => '3', oid_symbol => 'HEAP_TABLE_AM_HANDLER_OID',
909  descr => 'row-oriented heap table access method handler',
910  proname => 'heap_tableam_handler', provolatile => 'v',
911  prorettype => 'table_am_handler', proargtypes => 'internal',
912  prosrc => 'heap_tableam_handler' },
913
914# Index access method handlers
915{ oid => '330', descr => 'btree index access method handler',
916  proname => 'bthandler', provolatile => 'v', prorettype => 'index_am_handler',
917  proargtypes => 'internal', prosrc => 'bthandler' },
918{ oid => '331', descr => 'hash index access method handler',
919  proname => 'hashhandler', provolatile => 'v',
920  prorettype => 'index_am_handler', proargtypes => 'internal',
921  prosrc => 'hashhandler' },
922{ oid => '332', descr => 'gist index access method handler',
923  proname => 'gisthandler', provolatile => 'v',
924  prorettype => 'index_am_handler', proargtypes => 'internal',
925  prosrc => 'gisthandler' },
926{ oid => '333', descr => 'gin index access method handler',
927  proname => 'ginhandler', provolatile => 'v', prorettype => 'index_am_handler',
928  proargtypes => 'internal', prosrc => 'ginhandler' },
929{ oid => '334', descr => 'spgist index access method handler',
930  proname => 'spghandler', provolatile => 'v', prorettype => 'index_am_handler',
931  proargtypes => 'internal', prosrc => 'spghandler' },
932{ oid => '335', descr => 'brin index access method handler',
933  proname => 'brinhandler', provolatile => 'v',
934  prorettype => 'index_am_handler', proargtypes => 'internal',
935  prosrc => 'brinhandler' },
936{ oid => '3952', descr => 'brin: standalone scan new table pages',
937  proname => 'brin_summarize_new_values', provolatile => 'v',
938  proparallel => 'u', prorettype => 'int4', proargtypes => 'regclass',
939  prosrc => 'brin_summarize_new_values' },
940{ oid => '3999', descr => 'brin: standalone scan new table pages',
941  proname => 'brin_summarize_range', provolatile => 'v', proparallel => 'u',
942  prorettype => 'int4', proargtypes => 'regclass int8',
943  prosrc => 'brin_summarize_range' },
944{ oid => '4014', descr => 'brin: desummarize page range',
945  proname => 'brin_desummarize_range', provolatile => 'v', proparallel => 'u',
946  prorettype => 'void', proargtypes => 'regclass int8',
947  prosrc => 'brin_desummarize_range' },
948
949{ oid => '338', descr => 'validate an operator class',
950  proname => 'amvalidate', provolatile => 'v', prorettype => 'bool',
951  proargtypes => 'oid', prosrc => 'amvalidate' },
952
953{ oid => '636', descr => 'test property of an index access method',
954  proname => 'pg_indexam_has_property', provolatile => 's',
955  prorettype => 'bool', proargtypes => 'oid text',
956  prosrc => 'pg_indexam_has_property' },
957{ oid => '637', descr => 'test property of an index',
958  proname => 'pg_index_has_property', provolatile => 's', prorettype => 'bool',
959  proargtypes => 'regclass text', prosrc => 'pg_index_has_property' },
960{ oid => '638', descr => 'test property of an index column',
961  proname => 'pg_index_column_has_property', provolatile => 's',
962  prorettype => 'bool', proargtypes => 'regclass int4 text',
963  prosrc => 'pg_index_column_has_property' },
964{ oid => '676', descr => 'return name of given index build phase',
965  proname => 'pg_indexam_progress_phasename', prorettype => 'text',
966  proargtypes => 'oid int8', prosrc => 'pg_indexam_progress_phasename' },
967
968{ oid => '339',
969  proname => 'poly_same', prorettype => 'bool',
970  proargtypes => 'polygon polygon', prosrc => 'poly_same' },
971{ oid => '340',
972  proname => 'poly_contain', prorettype => 'bool',
973  proargtypes => 'polygon polygon', prosrc => 'poly_contain' },
974{ oid => '341',
975  proname => 'poly_left', prorettype => 'bool',
976  proargtypes => 'polygon polygon', prosrc => 'poly_left' },
977{ oid => '342',
978  proname => 'poly_overleft', prorettype => 'bool',
979  proargtypes => 'polygon polygon', prosrc => 'poly_overleft' },
980{ oid => '343',
981  proname => 'poly_overright', prorettype => 'bool',
982  proargtypes => 'polygon polygon', prosrc => 'poly_overright' },
983{ oid => '344',
984  proname => 'poly_right', prorettype => 'bool',
985  proargtypes => 'polygon polygon', prosrc => 'poly_right' },
986{ oid => '345',
987  proname => 'poly_contained', prorettype => 'bool',
988  proargtypes => 'polygon polygon', prosrc => 'poly_contained' },
989{ oid => '346',
990  proname => 'poly_overlap', prorettype => 'bool',
991  proargtypes => 'polygon polygon', prosrc => 'poly_overlap' },
992{ oid => '347', descr => 'I/O',
993  proname => 'poly_in', prorettype => 'polygon', proargtypes => 'cstring',
994  prosrc => 'poly_in' },
995{ oid => '348', descr => 'I/O',
996  proname => 'poly_out', prorettype => 'cstring', proargtypes => 'polygon',
997  prosrc => 'poly_out' },
998
999{ oid => '350', descr => 'less-equal-greater',
1000  proname => 'btint2cmp', proleakproof => 't', prorettype => 'int4',
1001  proargtypes => 'int2 int2', prosrc => 'btint2cmp' },
1002{ oid => '3129', descr => 'sort support',
1003  proname => 'btint2sortsupport', prorettype => 'void',
1004  proargtypes => 'internal', prosrc => 'btint2sortsupport' },
1005{ oid => '351', descr => 'less-equal-greater',
1006  proname => 'btint4cmp', proleakproof => 't', prorettype => 'int4',
1007  proargtypes => 'int4 int4', prosrc => 'btint4cmp' },
1008{ oid => '3130', descr => 'sort support',
1009  proname => 'btint4sortsupport', prorettype => 'void',
1010  proargtypes => 'internal', prosrc => 'btint4sortsupport' },
1011{ oid => '842', descr => 'less-equal-greater',
1012  proname => 'btint8cmp', proleakproof => 't', prorettype => 'int4',
1013  proargtypes => 'int8 int8', prosrc => 'btint8cmp' },
1014{ oid => '3131', descr => 'sort support',
1015  proname => 'btint8sortsupport', prorettype => 'void',
1016  proargtypes => 'internal', prosrc => 'btint8sortsupport' },
1017{ oid => '354', descr => 'less-equal-greater',
1018  proname => 'btfloat4cmp', proleakproof => 't', prorettype => 'int4',
1019  proargtypes => 'float4 float4', prosrc => 'btfloat4cmp' },
1020{ oid => '3132', descr => 'sort support',
1021  proname => 'btfloat4sortsupport', prorettype => 'void',
1022  proargtypes => 'internal', prosrc => 'btfloat4sortsupport' },
1023{ oid => '355', descr => 'less-equal-greater',
1024  proname => 'btfloat8cmp', proleakproof => 't', prorettype => 'int4',
1025  proargtypes => 'float8 float8', prosrc => 'btfloat8cmp' },
1026{ oid => '3133', descr => 'sort support',
1027  proname => 'btfloat8sortsupport', prorettype => 'void',
1028  proargtypes => 'internal', prosrc => 'btfloat8sortsupport' },
1029{ oid => '356', descr => 'less-equal-greater',
1030  proname => 'btoidcmp', proleakproof => 't', prorettype => 'int4',
1031  proargtypes => 'oid oid', prosrc => 'btoidcmp' },
1032{ oid => '3134', descr => 'sort support',
1033  proname => 'btoidsortsupport', prorettype => 'void',
1034  proargtypes => 'internal', prosrc => 'btoidsortsupport' },
1035{ oid => '404', descr => 'less-equal-greater',
1036  proname => 'btoidvectorcmp', proleakproof => 't', prorettype => 'int4',
1037  proargtypes => 'oidvector oidvector', prosrc => 'btoidvectorcmp' },
1038{ oid => '358', descr => 'less-equal-greater',
1039  proname => 'btcharcmp', proleakproof => 't', prorettype => 'int4',
1040  proargtypes => 'char char', prosrc => 'btcharcmp' },
1041{ oid => '359', descr => 'less-equal-greater',
1042  proname => 'btnamecmp', proleakproof => 't', prorettype => 'int4',
1043  proargtypes => 'name name', prosrc => 'btnamecmp' },
1044{ oid => '3135', descr => 'sort support',
1045  proname => 'btnamesortsupport', prorettype => 'void',
1046  proargtypes => 'internal', prosrc => 'btnamesortsupport' },
1047{ oid => '360', descr => 'less-equal-greater',
1048  proname => 'bttextcmp', proleakproof => 't', prorettype => 'int4',
1049  proargtypes => 'text text', prosrc => 'bttextcmp' },
1050{ oid => '3255', descr => 'sort support',
1051  proname => 'bttextsortsupport', prorettype => 'void',
1052  proargtypes => 'internal', prosrc => 'bttextsortsupport' },
1053{ oid => '5050', descr => 'equal image',
1054  proname => 'btvarstrequalimage', prorettype => 'bool', proargtypes => 'oid',
1055  prosrc => 'btvarstrequalimage' },
1056{ oid => '377', descr => 'less-equal-greater',
1057  proname => 'cash_cmp', proleakproof => 't', prorettype => 'int4',
1058  proargtypes => 'money money', prosrc => 'cash_cmp' },
1059{ oid => '382', descr => 'less-equal-greater',
1060  proname => 'btarraycmp', prorettype => 'int4',
1061  proargtypes => 'anyarray anyarray', prosrc => 'btarraycmp' },
1062{ oid => '4126', descr => 'window RANGE support',
1063  proname => 'in_range', prorettype => 'bool',
1064  proargtypes => 'int8 int8 int8 bool bool', prosrc => 'in_range_int8_int8' },
1065{ oid => '4127', descr => 'window RANGE support',
1066  proname => 'in_range', prorettype => 'bool',
1067  proargtypes => 'int4 int4 int8 bool bool', prosrc => 'in_range_int4_int8' },
1068{ oid => '4128', descr => 'window RANGE support',
1069  proname => 'in_range', prorettype => 'bool',
1070  proargtypes => 'int4 int4 int4 bool bool', prosrc => 'in_range_int4_int4' },
1071{ oid => '4129', descr => 'window RANGE support',
1072  proname => 'in_range', prorettype => 'bool',
1073  proargtypes => 'int4 int4 int2 bool bool', prosrc => 'in_range_int4_int2' },
1074{ oid => '4130', descr => 'window RANGE support',
1075  proname => 'in_range', prorettype => 'bool',
1076  proargtypes => 'int2 int2 int8 bool bool', prosrc => 'in_range_int2_int8' },
1077{ oid => '4131', descr => 'window RANGE support',
1078  proname => 'in_range', prorettype => 'bool',
1079  proargtypes => 'int2 int2 int4 bool bool', prosrc => 'in_range_int2_int4' },
1080{ oid => '4132', descr => 'window RANGE support',
1081  proname => 'in_range', prorettype => 'bool',
1082  proargtypes => 'int2 int2 int2 bool bool', prosrc => 'in_range_int2_int2' },
1083{ oid => '4139', descr => 'window RANGE support',
1084  proname => 'in_range', prorettype => 'bool',
1085  proargtypes => 'float8 float8 float8 bool bool',
1086  prosrc => 'in_range_float8_float8' },
1087{ oid => '4140', descr => 'window RANGE support',
1088  proname => 'in_range', prorettype => 'bool',
1089  proargtypes => 'float4 float4 float8 bool bool',
1090  prosrc => 'in_range_float4_float8' },
1091{ oid => '4141', descr => 'window RANGE support',
1092  proname => 'in_range', prorettype => 'bool',
1093  proargtypes => 'numeric numeric numeric bool bool',
1094  prosrc => 'in_range_numeric_numeric' },
1095
1096{ oid => '361',
1097  proname => 'lseg_distance', prorettype => 'float8',
1098  proargtypes => 'lseg lseg', prosrc => 'lseg_distance' },
1099{ oid => '362',
1100  proname => 'lseg_interpt', prorettype => 'point', proargtypes => 'lseg lseg',
1101  prosrc => 'lseg_interpt' },
1102{ oid => '363',
1103  proname => 'dist_ps', prorettype => 'float8', proargtypes => 'point lseg',
1104  prosrc => 'dist_ps' },
1105{ oid => '380',
1106  proname => 'dist_sp', prorettype => 'float8', proargtypes => 'lseg point',
1107  prosrc => 'dist_sp' },
1108{ oid => '364',
1109  proname => 'dist_pb', prorettype => 'float8', proargtypes => 'point box',
1110  prosrc => 'dist_pb' },
1111{ oid => '357',
1112  proname => 'dist_bp', prorettype => 'float8', proargtypes => 'box point',
1113  prosrc => 'dist_bp' },
1114{ oid => '365',
1115  proname => 'dist_sb', prorettype => 'float8', proargtypes => 'lseg box',
1116  prosrc => 'dist_sb' },
1117{ oid => '381',
1118  proname => 'dist_bs', prorettype => 'float8', proargtypes => 'box lseg',
1119  prosrc => 'dist_bs' },
1120{ oid => '366',
1121  proname => 'close_ps', prorettype => 'point', proargtypes => 'point lseg',
1122  prosrc => 'close_ps' },
1123{ oid => '367',
1124  proname => 'close_pb', prorettype => 'point', proargtypes => 'point box',
1125  prosrc => 'close_pb' },
1126{ oid => '368',
1127  proname => 'close_sb', prorettype => 'point', proargtypes => 'lseg box',
1128  prosrc => 'close_sb' },
1129{ oid => '369',
1130  proname => 'on_ps', prorettype => 'bool', proargtypes => 'point lseg',
1131  prosrc => 'on_ps' },
1132{ oid => '370',
1133  proname => 'path_distance', prorettype => 'float8',
1134  proargtypes => 'path path', prosrc => 'path_distance' },
1135{ oid => '371',
1136  proname => 'dist_ppath', prorettype => 'float8', proargtypes => 'point path',
1137  prosrc => 'dist_ppath' },
1138{ oid => '421',
1139  proname => 'dist_pathp', prorettype => 'float8', proargtypes => 'path point',
1140  prosrc => 'dist_pathp' },
1141{ oid => '372',
1142  proname => 'on_sb', prorettype => 'bool', proargtypes => 'lseg box',
1143  prosrc => 'on_sb' },
1144{ oid => '373',
1145  proname => 'inter_sb', prorettype => 'bool', proargtypes => 'lseg box',
1146  prosrc => 'inter_sb' },
1147
1148# OIDS 400 - 499
1149
1150{ oid => '401', descr => 'convert char(n) to text',
1151  proname => 'text', prorettype => 'text', proargtypes => 'bpchar',
1152  prosrc => 'rtrim1' },
1153{ oid => '406', descr => 'convert name to text',
1154  proname => 'text', prorettype => 'text', proargtypes => 'name',
1155  prosrc => 'name_text' },
1156{ oid => '407', descr => 'convert text to name',
1157  proname => 'name', prorettype => 'name', proargtypes => 'text',
1158  prosrc => 'text_name' },
1159{ oid => '408', descr => 'convert name to char(n)',
1160  proname => 'bpchar', prorettype => 'bpchar', proargtypes => 'name',
1161  prosrc => 'name_bpchar' },
1162{ oid => '409', descr => 'convert char(n) to name',
1163  proname => 'name', prorettype => 'name', proargtypes => 'bpchar',
1164  prosrc => 'bpchar_name' },
1165
1166{ oid => '449', descr => 'hash',
1167  proname => 'hashint2', prorettype => 'int4', proargtypes => 'int2',
1168  prosrc => 'hashint2' },
1169{ oid => '441', descr => 'hash',
1170  proname => 'hashint2extended', prorettype => 'int8',
1171  proargtypes => 'int2 int8', prosrc => 'hashint2extended' },
1172{ oid => '450', descr => 'hash',
1173  proname => 'hashint4', prorettype => 'int4', proargtypes => 'int4',
1174  prosrc => 'hashint4' },
1175{ oid => '425', descr => 'hash',
1176  proname => 'hashint4extended', prorettype => 'int8',
1177  proargtypes => 'int4 int8', prosrc => 'hashint4extended' },
1178{ oid => '949', descr => 'hash',
1179  proname => 'hashint8', prorettype => 'int4', proargtypes => 'int8',
1180  prosrc => 'hashint8' },
1181{ oid => '442', descr => 'hash',
1182  proname => 'hashint8extended', prorettype => 'int8',
1183  proargtypes => 'int8 int8', prosrc => 'hashint8extended' },
1184{ oid => '451', descr => 'hash',
1185  proname => 'hashfloat4', prorettype => 'int4', proargtypes => 'float4',
1186  prosrc => 'hashfloat4' },
1187{ oid => '443', descr => 'hash',
1188  proname => 'hashfloat4extended', prorettype => 'int8',
1189  proargtypes => 'float4 int8', prosrc => 'hashfloat4extended' },
1190{ oid => '452', descr => 'hash',
1191  proname => 'hashfloat8', prorettype => 'int4', proargtypes => 'float8',
1192  prosrc => 'hashfloat8' },
1193{ oid => '444', descr => 'hash',
1194  proname => 'hashfloat8extended', prorettype => 'int8',
1195  proargtypes => 'float8 int8', prosrc => 'hashfloat8extended' },
1196{ oid => '453', descr => 'hash',
1197  proname => 'hashoid', prorettype => 'int4', proargtypes => 'oid',
1198  prosrc => 'hashoid' },
1199{ oid => '445', descr => 'hash',
1200  proname => 'hashoidextended', prorettype => 'int8', proargtypes => 'oid int8',
1201  prosrc => 'hashoidextended' },
1202{ oid => '454', descr => 'hash',
1203  proname => 'hashchar', prorettype => 'int4', proargtypes => 'char',
1204  prosrc => 'hashchar' },
1205{ oid => '446', descr => 'hash',
1206  proname => 'hashcharextended', prorettype => 'int8',
1207  proargtypes => 'char int8', prosrc => 'hashcharextended' },
1208{ oid => '455', descr => 'hash',
1209  proname => 'hashname', prorettype => 'int4', proargtypes => 'name',
1210  prosrc => 'hashname' },
1211{ oid => '447', descr => 'hash',
1212  proname => 'hashnameextended', prorettype => 'int8',
1213  proargtypes => 'name int8', prosrc => 'hashnameextended' },
1214{ oid => '400', descr => 'hash',
1215  proname => 'hashtext', prorettype => 'int4', proargtypes => 'text',
1216  prosrc => 'hashtext' },
1217{ oid => '448', descr => 'hash',
1218  proname => 'hashtextextended', prorettype => 'int8',
1219  proargtypes => 'text int8', prosrc => 'hashtextextended' },
1220{ oid => '456', descr => 'hash',
1221  proname => 'hashvarlena', prorettype => 'int4', proargtypes => 'internal',
1222  prosrc => 'hashvarlena' },
1223{ oid => '772', descr => 'hash',
1224  proname => 'hashvarlenaextended', prorettype => 'int8',
1225  proargtypes => 'internal int8', prosrc => 'hashvarlenaextended' },
1226{ oid => '457', descr => 'hash',
1227  proname => 'hashoidvector', prorettype => 'int4', proargtypes => 'oidvector',
1228  prosrc => 'hashoidvector' },
1229{ oid => '776', descr => 'hash',
1230  proname => 'hashoidvectorextended', prorettype => 'int8',
1231  proargtypes => 'oidvector int8', prosrc => 'hashoidvectorextended' },
1232{ oid => '329', descr => 'hash',
1233  proname => 'hash_aclitem', prorettype => 'int4', proargtypes => 'aclitem',
1234  prosrc => 'hash_aclitem' },
1235{ oid => '777', descr => 'hash',
1236  proname => 'hash_aclitem_extended', prorettype => 'int8',
1237  proargtypes => 'aclitem int8', prosrc => 'hash_aclitem_extended' },
1238{ oid => '399', descr => 'hash',
1239  proname => 'hashmacaddr', prorettype => 'int4', proargtypes => 'macaddr',
1240  prosrc => 'hashmacaddr' },
1241{ oid => '778', descr => 'hash',
1242  proname => 'hashmacaddrextended', prorettype => 'int8',
1243  proargtypes => 'macaddr int8', prosrc => 'hashmacaddrextended' },
1244{ oid => '422', descr => 'hash',
1245  proname => 'hashinet', prorettype => 'int4', proargtypes => 'inet',
1246  prosrc => 'hashinet' },
1247{ oid => '779', descr => 'hash',
1248  proname => 'hashinetextended', prorettype => 'int8',
1249  proargtypes => 'inet int8', prosrc => 'hashinetextended' },
1250{ oid => '432', descr => 'hash',
1251  proname => 'hash_numeric', prorettype => 'int4', proargtypes => 'numeric',
1252  prosrc => 'hash_numeric' },
1253{ oid => '780', descr => 'hash',
1254  proname => 'hash_numeric_extended', prorettype => 'int8',
1255  proargtypes => 'numeric int8', prosrc => 'hash_numeric_extended' },
1256{ oid => '328', descr => 'hash',
1257  proname => 'hashmacaddr8', prorettype => 'int4', proargtypes => 'macaddr8',
1258  prosrc => 'hashmacaddr8' },
1259{ oid => '781', descr => 'hash',
1260  proname => 'hashmacaddr8extended', prorettype => 'int8',
1261  proargtypes => 'macaddr8 int8', prosrc => 'hashmacaddr8extended' },
1262
1263{ oid => '438', descr => 'count the number of NULL arguments',
1264  proname => 'num_nulls', provariadic => 'any', proisstrict => 'f',
1265  prorettype => 'int4', proargtypes => 'any', proallargtypes => '{any}',
1266  proargmodes => '{v}', prosrc => 'pg_num_nulls' },
1267{ oid => '440', descr => 'count the number of non-NULL arguments',
1268  proname => 'num_nonnulls', provariadic => 'any', proisstrict => 'f',
1269  prorettype => 'int4', proargtypes => 'any', proallargtypes => '{any}',
1270  proargmodes => '{v}', prosrc => 'pg_num_nonnulls' },
1271
1272{ oid => '458', descr => 'larger of two',
1273  proname => 'text_larger', proleakproof => 't', prorettype => 'text',
1274  proargtypes => 'text text', prosrc => 'text_larger' },
1275{ oid => '459', descr => 'smaller of two',
1276  proname => 'text_smaller', proleakproof => 't', prorettype => 'text',
1277  proargtypes => 'text text', prosrc => 'text_smaller' },
1278
1279{ oid => '460', descr => 'I/O',
1280  proname => 'int8in', prorettype => 'int8', proargtypes => 'cstring',
1281  prosrc => 'int8in' },
1282{ oid => '461', descr => 'I/O',
1283  proname => 'int8out', prorettype => 'cstring', proargtypes => 'int8',
1284  prosrc => 'int8out' },
1285{ oid => '462',
1286  proname => 'int8um', prorettype => 'int8', proargtypes => 'int8',
1287  prosrc => 'int8um' },
1288{ oid => '463',
1289  proname => 'int8pl', prorettype => 'int8', proargtypes => 'int8 int8',
1290  prosrc => 'int8pl' },
1291{ oid => '464',
1292  proname => 'int8mi', prorettype => 'int8', proargtypes => 'int8 int8',
1293  prosrc => 'int8mi' },
1294{ oid => '465',
1295  proname => 'int8mul', prorettype => 'int8', proargtypes => 'int8 int8',
1296  prosrc => 'int8mul' },
1297{ oid => '466',
1298  proname => 'int8div', prorettype => 'int8', proargtypes => 'int8 int8',
1299  prosrc => 'int8div' },
1300{ oid => '467',
1301  proname => 'int8eq', proleakproof => 't', prorettype => 'bool',
1302  proargtypes => 'int8 int8', prosrc => 'int8eq' },
1303{ oid => '468',
1304  proname => 'int8ne', proleakproof => 't', prorettype => 'bool',
1305  proargtypes => 'int8 int8', prosrc => 'int8ne' },
1306{ oid => '469',
1307  proname => 'int8lt', proleakproof => 't', prorettype => 'bool',
1308  proargtypes => 'int8 int8', prosrc => 'int8lt' },
1309{ oid => '470',
1310  proname => 'int8gt', proleakproof => 't', prorettype => 'bool',
1311  proargtypes => 'int8 int8', prosrc => 'int8gt' },
1312{ oid => '471',
1313  proname => 'int8le', proleakproof => 't', prorettype => 'bool',
1314  proargtypes => 'int8 int8', prosrc => 'int8le' },
1315{ oid => '472',
1316  proname => 'int8ge', proleakproof => 't', prorettype => 'bool',
1317  proargtypes => 'int8 int8', prosrc => 'int8ge' },
1318
1319{ oid => '474',
1320  proname => 'int84eq', proleakproof => 't', prorettype => 'bool',
1321  proargtypes => 'int8 int4', prosrc => 'int84eq' },
1322{ oid => '475',
1323  proname => 'int84ne', proleakproof => 't', prorettype => 'bool',
1324  proargtypes => 'int8 int4', prosrc => 'int84ne' },
1325{ oid => '476',
1326  proname => 'int84lt', proleakproof => 't', prorettype => 'bool',
1327  proargtypes => 'int8 int4', prosrc => 'int84lt' },
1328{ oid => '477',
1329  proname => 'int84gt', proleakproof => 't', prorettype => 'bool',
1330  proargtypes => 'int8 int4', prosrc => 'int84gt' },
1331{ oid => '478',
1332  proname => 'int84le', proleakproof => 't', prorettype => 'bool',
1333  proargtypes => 'int8 int4', prosrc => 'int84le' },
1334{ oid => '479',
1335  proname => 'int84ge', proleakproof => 't', prorettype => 'bool',
1336  proargtypes => 'int8 int4', prosrc => 'int84ge' },
1337
1338{ oid => '480', descr => 'convert int8 to int4',
1339  proname => 'int4', prorettype => 'int4', proargtypes => 'int8',
1340  prosrc => 'int84' },
1341{ oid => '481', descr => 'convert int4 to int8',
1342  proname => 'int8', prorettype => 'int8', proargtypes => 'int4',
1343  prosrc => 'int48' },
1344{ oid => '482', descr => 'convert int8 to float8',
1345  proname => 'float8', prorettype => 'float8', proargtypes => 'int8',
1346  prosrc => 'i8tod' },
1347{ oid => '483', descr => 'convert float8 to int8',
1348  proname => 'int8', prorettype => 'int8', proargtypes => 'float8',
1349  prosrc => 'dtoi8' },
1350
1351# OIDS 500 - 599
1352
1353# OIDS 600 - 699
1354
1355{ oid => '626', descr => 'hash',
1356  proname => 'hash_array', prorettype => 'int4', proargtypes => 'anyarray',
1357  prosrc => 'hash_array' },
1358{ oid => '782', descr => 'hash',
1359  proname => 'hash_array_extended', prorettype => 'int8',
1360  proargtypes => 'anyarray int8', prosrc => 'hash_array_extended' },
1361
1362{ oid => '652', descr => 'convert int8 to float4',
1363  proname => 'float4', prorettype => 'float4', proargtypes => 'int8',
1364  prosrc => 'i8tof' },
1365{ oid => '653', descr => 'convert float4 to int8',
1366  proname => 'int8', prorettype => 'int8', proargtypes => 'float4',
1367  prosrc => 'ftoi8' },
1368
1369{ oid => '714', descr => 'convert int8 to int2',
1370  proname => 'int2', prorettype => 'int2', proargtypes => 'int8',
1371  prosrc => 'int82' },
1372{ oid => '754', descr => 'convert int2 to int8',
1373  proname => 'int8', prorettype => 'int8', proargtypes => 'int2',
1374  prosrc => 'int28' },
1375
1376{ oid => '655',
1377  proname => 'namelt', proleakproof => 't', prorettype => 'bool',
1378  proargtypes => 'name name', prosrc => 'namelt' },
1379{ oid => '656',
1380  proname => 'namele', proleakproof => 't', prorettype => 'bool',
1381  proargtypes => 'name name', prosrc => 'namele' },
1382{ oid => '657',
1383  proname => 'namegt', proleakproof => 't', prorettype => 'bool',
1384  proargtypes => 'name name', prosrc => 'namegt' },
1385{ oid => '658',
1386  proname => 'namege', proleakproof => 't', prorettype => 'bool',
1387  proargtypes => 'name name', prosrc => 'namege' },
1388{ oid => '659',
1389  proname => 'namene', proleakproof => 't', prorettype => 'bool',
1390  proargtypes => 'name name', prosrc => 'namene' },
1391
1392{ oid => '668', descr => 'adjust char() to typmod length',
1393  proname => 'bpchar', prorettype => 'bpchar',
1394  proargtypes => 'bpchar int4 bool', prosrc => 'bpchar' },
1395{ oid => '3097', descr => 'planner support for varchar length coercion',
1396  proname => 'varchar_support', prorettype => 'internal',
1397  proargtypes => 'internal', prosrc => 'varchar_support' },
1398{ oid => '669', descr => 'adjust varchar() to typmod length',
1399  proname => 'varchar', prosupport => 'varchar_support',
1400  prorettype => 'varchar', proargtypes => 'varchar int4 bool',
1401  prosrc => 'varchar' },
1402
1403{ oid => '619',
1404  proname => 'oidvectorne', proleakproof => 't', prorettype => 'bool',
1405  proargtypes => 'oidvector oidvector', prosrc => 'oidvectorne' },
1406{ oid => '677',
1407  proname => 'oidvectorlt', proleakproof => 't', prorettype => 'bool',
1408  proargtypes => 'oidvector oidvector', prosrc => 'oidvectorlt' },
1409{ oid => '678',
1410  proname => 'oidvectorle', proleakproof => 't', prorettype => 'bool',
1411  proargtypes => 'oidvector oidvector', prosrc => 'oidvectorle' },
1412{ oid => '679',
1413  proname => 'oidvectoreq', proleakproof => 't', prorettype => 'bool',
1414  proargtypes => 'oidvector oidvector', prosrc => 'oidvectoreq' },
1415{ oid => '680',
1416  proname => 'oidvectorge', proleakproof => 't', prorettype => 'bool',
1417  proargtypes => 'oidvector oidvector', prosrc => 'oidvectorge' },
1418{ oid => '681',
1419  proname => 'oidvectorgt', proleakproof => 't', prorettype => 'bool',
1420  proargtypes => 'oidvector oidvector', prosrc => 'oidvectorgt' },
1421
1422# OIDS 700 - 799
1423{ oid => '710', descr => 'deprecated, use current_user instead',
1424  proname => 'getpgusername', provolatile => 's', prorettype => 'name',
1425  proargtypes => '', prosrc => 'current_user' },
1426{ oid => '716',
1427  proname => 'oidlt', proleakproof => 't', prorettype => 'bool',
1428  proargtypes => 'oid oid', prosrc => 'oidlt' },
1429{ oid => '717',
1430  proname => 'oidle', proleakproof => 't', prorettype => 'bool',
1431  proargtypes => 'oid oid', prosrc => 'oidle' },
1432
1433{ oid => '720', descr => 'octet length',
1434  proname => 'octet_length', prorettype => 'int4', proargtypes => 'bytea',
1435  prosrc => 'byteaoctetlen' },
1436{ oid => '721', descr => 'get byte',
1437  proname => 'get_byte', prorettype => 'int4', proargtypes => 'bytea int4',
1438  prosrc => 'byteaGetByte' },
1439{ oid => '722', descr => 'set byte',
1440  proname => 'set_byte', prorettype => 'bytea',
1441  proargtypes => 'bytea int4 int4', prosrc => 'byteaSetByte' },
1442{ oid => '723', descr => 'get bit',
1443  proname => 'get_bit', prorettype => 'int4', proargtypes => 'bytea int8',
1444  prosrc => 'byteaGetBit' },
1445{ oid => '724', descr => 'set bit',
1446  proname => 'set_bit', prorettype => 'bytea', proargtypes => 'bytea int8 int4',
1447  prosrc => 'byteaSetBit' },
1448{ oid => '749', descr => 'substitute portion of string',
1449  proname => 'overlay', prorettype => 'bytea',
1450  proargtypes => 'bytea bytea int4 int4', prosrc => 'byteaoverlay' },
1451{ oid => '752', descr => 'substitute portion of string',
1452  proname => 'overlay', prorettype => 'bytea',
1453  proargtypes => 'bytea bytea int4', prosrc => 'byteaoverlay_no_len' },
1454
1455{ oid => '725',
1456  proname => 'dist_pl', prorettype => 'float8', proargtypes => 'point line',
1457  prosrc => 'dist_pl' },
1458{ oid => '702',
1459  proname => 'dist_lp', prorettype => 'float8', proargtypes => 'line point',
1460  prosrc => 'dist_lp' },
1461{ oid => '726',
1462  proname => 'dist_lb', prorettype => 'float8', proargtypes => 'line box',
1463  prosrc => 'dist_lb' },
1464{ oid => '703',
1465  proname => 'dist_bl', prorettype => 'float8', proargtypes => 'box line',
1466  prosrc => 'dist_bl' },
1467{ oid => '727',
1468  proname => 'dist_sl', prorettype => 'float8', proargtypes => 'lseg line',
1469  prosrc => 'dist_sl' },
1470{ oid => '704',
1471  proname => 'dist_ls', prorettype => 'float8', proargtypes => 'line lseg',
1472  prosrc => 'dist_ls' },
1473
1474{ oid => '728',
1475  proname => 'dist_cpoly', prorettype => 'float8',
1476  proargtypes => 'circle polygon', prosrc => 'dist_cpoly' },
1477{ oid => '785',
1478  proname => 'dist_polyc', prorettype => 'float8',
1479  proargtypes => 'polygon circle', prosrc => 'dist_polyc' },
1480{ oid => '729',
1481  proname => 'poly_distance', prorettype => 'float8',
1482  proargtypes => 'polygon polygon', prosrc => 'poly_distance' },
1483{ oid => '3275',
1484  proname => 'dist_ppoly', prorettype => 'float8',
1485  proargtypes => 'point polygon', prosrc => 'dist_ppoly' },
1486{ oid => '3292',
1487  proname => 'dist_polyp', prorettype => 'float8',
1488  proargtypes => 'polygon point', prosrc => 'dist_polyp' },
1489{ oid => '3290',
1490  proname => 'dist_cpoint', prorettype => 'float8',
1491  proargtypes => 'circle point', prosrc => 'dist_cpoint' },
1492
1493{ oid => '740',
1494  proname => 'text_lt', proleakproof => 't', prorettype => 'bool',
1495  proargtypes => 'text text', prosrc => 'text_lt' },
1496{ oid => '741',
1497  proname => 'text_le', proleakproof => 't', prorettype => 'bool',
1498  proargtypes => 'text text', prosrc => 'text_le' },
1499{ oid => '742',
1500  proname => 'text_gt', proleakproof => 't', prorettype => 'bool',
1501  proargtypes => 'text text', prosrc => 'text_gt' },
1502{ oid => '743',
1503  proname => 'text_ge', proleakproof => 't', prorettype => 'bool',
1504  proargtypes => 'text text', prosrc => 'text_ge' },
1505
1506{ oid => '745', descr => 'current user name',
1507  proname => 'current_user', provolatile => 's', prorettype => 'name',
1508  proargtypes => '', prosrc => 'current_user' },
1509{ oid => '746', descr => 'session user name',
1510  proname => 'session_user', provolatile => 's', prorettype => 'name',
1511  proargtypes => '', prosrc => 'session_user' },
1512
1513{ oid => '744',
1514  proname => 'array_eq', prorettype => 'bool',
1515  proargtypes => 'anyarray anyarray', prosrc => 'array_eq' },
1516{ oid => '390',
1517  proname => 'array_ne', prorettype => 'bool',
1518  proargtypes => 'anyarray anyarray', prosrc => 'array_ne' },
1519{ oid => '391',
1520  proname => 'array_lt', prorettype => 'bool',
1521  proargtypes => 'anyarray anyarray', prosrc => 'array_lt' },
1522{ oid => '392',
1523  proname => 'array_gt', prorettype => 'bool',
1524  proargtypes => 'anyarray anyarray', prosrc => 'array_gt' },
1525{ oid => '393',
1526  proname => 'array_le', prorettype => 'bool',
1527  proargtypes => 'anyarray anyarray', prosrc => 'array_le' },
1528{ oid => '396',
1529  proname => 'array_ge', prorettype => 'bool',
1530  proargtypes => 'anyarray anyarray', prosrc => 'array_ge' },
1531{ oid => '747', descr => 'array dimensions',
1532  proname => 'array_dims', prorettype => 'text', proargtypes => 'anyarray',
1533  prosrc => 'array_dims' },
1534{ oid => '748', descr => 'number of array dimensions',
1535  proname => 'array_ndims', prorettype => 'int4', proargtypes => 'anyarray',
1536  prosrc => 'array_ndims' },
1537{ oid => '750', descr => 'I/O',
1538  proname => 'array_in', provolatile => 's', prorettype => 'anyarray',
1539  proargtypes => 'cstring oid int4', prosrc => 'array_in' },
1540{ oid => '751', descr => 'I/O',
1541  proname => 'array_out', provolatile => 's', prorettype => 'cstring',
1542  proargtypes => 'anyarray', prosrc => 'array_out' },
1543{ oid => '2091', descr => 'array lower dimension',
1544  proname => 'array_lower', prorettype => 'int4',
1545  proargtypes => 'anyarray int4', prosrc => 'array_lower' },
1546{ oid => '2092', descr => 'array upper dimension',
1547  proname => 'array_upper', prorettype => 'int4',
1548  proargtypes => 'anyarray int4', prosrc => 'array_upper' },
1549{ oid => '2176', descr => 'array length',
1550  proname => 'array_length', prorettype => 'int4',
1551  proargtypes => 'anyarray int4', prosrc => 'array_length' },
1552{ oid => '3179', descr => 'array cardinality',
1553  proname => 'cardinality', prorettype => 'int4', proargtypes => 'anyarray',
1554  prosrc => 'array_cardinality' },
1555{ oid => '378', descr => 'append element onto end of array',
1556  proname => 'array_append', proisstrict => 'f', prorettype => 'anyarray',
1557  proargtypes => 'anyarray anyelement', prosrc => 'array_append' },
1558{ oid => '379', descr => 'prepend element onto front of array',
1559  proname => 'array_prepend', proisstrict => 'f', prorettype => 'anyarray',
1560  proargtypes => 'anyelement anyarray', prosrc => 'array_prepend' },
1561{ oid => '383',
1562  proname => 'array_cat', proisstrict => 'f', prorettype => 'anyarray',
1563  proargtypes => 'anyarray anyarray', prosrc => 'array_cat' },
1564{ oid => '394', descr => 'split delimited text into text[]',
1565  proname => 'string_to_array', proisstrict => 'f', prorettype => '_text',
1566  proargtypes => 'text text', prosrc => 'text_to_array' },
1567{ oid => '395',
1568  descr => 'concatenate array elements, using delimiter, into text',
1569  proname => 'array_to_string', provolatile => 's', prorettype => 'text',
1570  proargtypes => 'anyarray text', prosrc => 'array_to_text' },
1571{ oid => '376', descr => 'split delimited text into text[], with null string',
1572  proname => 'string_to_array', proisstrict => 'f', prorettype => '_text',
1573  proargtypes => 'text text text', prosrc => 'text_to_array_null' },
1574{ oid => '384',
1575  descr => 'concatenate array elements, using delimiter and null string, into text',
1576  proname => 'array_to_string', proisstrict => 'f', provolatile => 's',
1577  prorettype => 'text', proargtypes => 'anyarray text text',
1578  prosrc => 'array_to_text_null' },
1579{ oid => '515', descr => 'larger of two',
1580  proname => 'array_larger', prorettype => 'anyarray',
1581  proargtypes => 'anyarray anyarray', prosrc => 'array_larger' },
1582{ oid => '516', descr => 'smaller of two',
1583  proname => 'array_smaller', prorettype => 'anyarray',
1584  proargtypes => 'anyarray anyarray', prosrc => 'array_smaller' },
1585{ oid => '3277', descr => 'returns an offset of value in array',
1586  proname => 'array_position', proisstrict => 'f', prorettype => 'int4',
1587  proargtypes => 'anyarray anyelement', prosrc => 'array_position' },
1588{ oid => '3278',
1589  descr => 'returns an offset of value in array with start index',
1590  proname => 'array_position', proisstrict => 'f', prorettype => 'int4',
1591  proargtypes => 'anyarray anyelement int4', prosrc => 'array_position_start' },
1592{ oid => '3279',
1593  descr => 'returns an array of offsets of some value in array',
1594  proname => 'array_positions', proisstrict => 'f', prorettype => '_int4',
1595  proargtypes => 'anyarray anyelement', prosrc => 'array_positions' },
1596{ oid => '1191', descr => 'array subscripts generator',
1597  proname => 'generate_subscripts', prorows => '1000', proretset => 't',
1598  prorettype => 'int4', proargtypes => 'anyarray int4 bool',
1599  prosrc => 'generate_subscripts' },
1600{ oid => '1192', descr => 'array subscripts generator',
1601  proname => 'generate_subscripts', prorows => '1000', proretset => 't',
1602  prorettype => 'int4', proargtypes => 'anyarray int4',
1603  prosrc => 'generate_subscripts_nodir' },
1604{ oid => '1193', descr => 'array constructor with value',
1605  proname => 'array_fill', proisstrict => 'f', prorettype => 'anyarray',
1606  proargtypes => 'anyelement _int4', prosrc => 'array_fill' },
1607{ oid => '1286', descr => 'array constructor with value',
1608  proname => 'array_fill', proisstrict => 'f', prorettype => 'anyarray',
1609  proargtypes => 'anyelement _int4 _int4',
1610  prosrc => 'array_fill_with_lower_bounds' },
1611{ oid => '2331', descr => 'expand array to set of rows',
1612  proname => 'unnest', prorows => '100', prosupport => 'array_unnest_support',
1613  proretset => 't', prorettype => 'anyelement', proargtypes => 'anyarray',
1614  prosrc => 'array_unnest' },
1615{ oid => '3996', descr => 'planner support for array_unnest',
1616  proname => 'array_unnest_support', prorettype => 'internal',
1617  proargtypes => 'internal', prosrc => 'array_unnest_support' },
1618{ oid => '3167',
1619  descr => 'remove any occurrences of an element from an array',
1620  proname => 'array_remove', proisstrict => 'f', prorettype => 'anyarray',
1621  proargtypes => 'anyarray anyelement', prosrc => 'array_remove' },
1622{ oid => '3168', descr => 'replace any occurrences of an element in an array',
1623  proname => 'array_replace', proisstrict => 'f', prorettype => 'anyarray',
1624  proargtypes => 'anyarray anyelement anyelement', prosrc => 'array_replace' },
1625{ oid => '2333', descr => 'aggregate transition function',
1626  proname => 'array_agg_transfn', proisstrict => 'f', prorettype => 'internal',
1627  proargtypes => 'internal anynonarray', prosrc => 'array_agg_transfn' },
1628{ oid => '2334', descr => 'aggregate final function',
1629  proname => 'array_agg_finalfn', proisstrict => 'f', prorettype => 'anyarray',
1630  proargtypes => 'internal anynonarray', prosrc => 'array_agg_finalfn' },
1631{ oid => '2335', descr => 'concatenate aggregate input into an array',
1632  proname => 'array_agg', prokind => 'a', proisstrict => 'f',
1633  prorettype => 'anyarray', proargtypes => 'anynonarray',
1634  prosrc => 'aggregate_dummy' },
1635{ oid => '4051', descr => 'aggregate transition function',
1636  proname => 'array_agg_array_transfn', proisstrict => 'f',
1637  prorettype => 'internal', proargtypes => 'internal anyarray',
1638  prosrc => 'array_agg_array_transfn' },
1639{ oid => '4052', descr => 'aggregate final function',
1640  proname => 'array_agg_array_finalfn', proisstrict => 'f',
1641  prorettype => 'anyarray', proargtypes => 'internal anyarray',
1642  prosrc => 'array_agg_array_finalfn' },
1643{ oid => '4053', descr => 'concatenate aggregate input into an array',
1644  proname => 'array_agg', prokind => 'a', proisstrict => 'f',
1645  prorettype => 'anyarray', proargtypes => 'anyarray',
1646  prosrc => 'aggregate_dummy' },
1647{ oid => '3218',
1648  descr => 'bucket number of operand given a sorted array of bucket lower bounds',
1649  proname => 'width_bucket', prorettype => 'int4',
1650  proargtypes => 'anyelement anyarray', prosrc => 'width_bucket_array' },
1651{ oid => '3816', descr => 'array typanalyze',
1652  proname => 'array_typanalyze', provolatile => 's', prorettype => 'bool',
1653  proargtypes => 'internal', prosrc => 'array_typanalyze' },
1654{ oid => '3817',
1655  descr => 'restriction selectivity for array-containment operators',
1656  proname => 'arraycontsel', provolatile => 's', prorettype => 'float8',
1657  proargtypes => 'internal oid internal int4', prosrc => 'arraycontsel' },
1658{ oid => '3818', descr => 'join selectivity for array-containment operators',
1659  proname => 'arraycontjoinsel', provolatile => 's', prorettype => 'float8',
1660  proargtypes => 'internal oid internal int2 internal',
1661  prosrc => 'arraycontjoinsel' },
1662
1663{ oid => '764', descr => 'large object import',
1664  proname => 'lo_import', provolatile => 'v', proparallel => 'u',
1665  prorettype => 'oid', proargtypes => 'text', prosrc => 'be_lo_import' },
1666{ oid => '767', descr => 'large object import',
1667  proname => 'lo_import', provolatile => 'v', proparallel => 'u',
1668  prorettype => 'oid', proargtypes => 'text oid',
1669  prosrc => 'be_lo_import_with_oid' },
1670{ oid => '765', descr => 'large object export',
1671  proname => 'lo_export', provolatile => 'v', proparallel => 'u',
1672  prorettype => 'int4', proargtypes => 'oid text', prosrc => 'be_lo_export' },
1673
1674{ oid => '766', descr => 'increment',
1675  proname => 'int4inc', prorettype => 'int4', proargtypes => 'int4',
1676  prosrc => 'int4inc' },
1677{ oid => '768', descr => 'larger of two',
1678  proname => 'int4larger', prorettype => 'int4', proargtypes => 'int4 int4',
1679  prosrc => 'int4larger' },
1680{ oid => '769', descr => 'smaller of two',
1681  proname => 'int4smaller', prorettype => 'int4', proargtypes => 'int4 int4',
1682  prosrc => 'int4smaller' },
1683{ oid => '770', descr => 'larger of two',
1684  proname => 'int2larger', prorettype => 'int2', proargtypes => 'int2 int2',
1685  prosrc => 'int2larger' },
1686{ oid => '771', descr => 'smaller of two',
1687  proname => 'int2smaller', prorettype => 'int2', proargtypes => 'int2 int2',
1688  prosrc => 'int2smaller' },
1689
1690# OIDS 800 - 899
1691
1692{ oid => '846',
1693  proname => 'cash_mul_flt4', prorettype => 'money',
1694  proargtypes => 'money float4', prosrc => 'cash_mul_flt4' },
1695{ oid => '847',
1696  proname => 'cash_div_flt4', prorettype => 'money',
1697  proargtypes => 'money float4', prosrc => 'cash_div_flt4' },
1698{ oid => '848',
1699  proname => 'flt4_mul_cash', prorettype => 'money',
1700  proargtypes => 'float4 money', prosrc => 'flt4_mul_cash' },
1701
1702{ oid => '849', descr => 'position of substring',
1703  proname => 'position', prorettype => 'int4', proargtypes => 'text text',
1704  prosrc => 'textpos' },
1705{ oid => '850',
1706  proname => 'textlike', prosupport => 'textlike_support', prorettype => 'bool',
1707  proargtypes => 'text text', prosrc => 'textlike' },
1708{ oid => '1023', descr => 'planner support for textlike',
1709  proname => 'textlike_support', prorettype => 'internal',
1710  proargtypes => 'internal', prosrc => 'textlike_support' },
1711{ oid => '851',
1712  proname => 'textnlike', prorettype => 'bool', proargtypes => 'text text',
1713  prosrc => 'textnlike' },
1714
1715{ oid => '852',
1716  proname => 'int48eq', proleakproof => 't', prorettype => 'bool',
1717  proargtypes => 'int4 int8', prosrc => 'int48eq' },
1718{ oid => '853',
1719  proname => 'int48ne', proleakproof => 't', prorettype => 'bool',
1720  proargtypes => 'int4 int8', prosrc => 'int48ne' },
1721{ oid => '854',
1722  proname => 'int48lt', proleakproof => 't', prorettype => 'bool',
1723  proargtypes => 'int4 int8', prosrc => 'int48lt' },
1724{ oid => '855',
1725  proname => 'int48gt', proleakproof => 't', prorettype => 'bool',
1726  proargtypes => 'int4 int8', prosrc => 'int48gt' },
1727{ oid => '856',
1728  proname => 'int48le', proleakproof => 't', prorettype => 'bool',
1729  proargtypes => 'int4 int8', prosrc => 'int48le' },
1730{ oid => '857',
1731  proname => 'int48ge', proleakproof => 't', prorettype => 'bool',
1732  proargtypes => 'int4 int8', prosrc => 'int48ge' },
1733
1734{ oid => '858',
1735  proname => 'namelike', prosupport => 'textlike_support', prorettype => 'bool',
1736  proargtypes => 'name text', prosrc => 'namelike' },
1737{ oid => '859',
1738  proname => 'namenlike', prorettype => 'bool', proargtypes => 'name text',
1739  prosrc => 'namenlike' },
1740
1741{ oid => '860', descr => 'convert char to char(n)',
1742  proname => 'bpchar', prorettype => 'bpchar', proargtypes => 'char',
1743  prosrc => 'char_bpchar' },
1744
1745{ oid => '861', descr => 'name of the current database',
1746  proname => 'current_database', provolatile => 's', prorettype => 'name',
1747  proargtypes => '', prosrc => 'current_database' },
1748{ oid => '817', descr => 'get the currently executing query',
1749  proname => 'current_query', proisstrict => 'f', provolatile => 'v',
1750  proparallel => 'r', prorettype => 'text', proargtypes => '',
1751  prosrc => 'current_query' },
1752
1753{ oid => '3399',
1754  proname => 'int8_mul_cash', prorettype => 'money',
1755  proargtypes => 'int8 money', prosrc => 'int8_mul_cash' },
1756{ oid => '862',
1757  proname => 'int4_mul_cash', prorettype => 'money',
1758  proargtypes => 'int4 money', prosrc => 'int4_mul_cash' },
1759{ oid => '863',
1760  proname => 'int2_mul_cash', prorettype => 'money',
1761  proargtypes => 'int2 money', prosrc => 'int2_mul_cash' },
1762{ oid => '3344',
1763  proname => 'cash_mul_int8', prorettype => 'money',
1764  proargtypes => 'money int8', prosrc => 'cash_mul_int8' },
1765{ oid => '3345',
1766  proname => 'cash_div_int8', prorettype => 'money',
1767  proargtypes => 'money int8', prosrc => 'cash_div_int8' },
1768{ oid => '864',
1769  proname => 'cash_mul_int4', prorettype => 'money',
1770  proargtypes => 'money int4', prosrc => 'cash_mul_int4' },
1771{ oid => '865',
1772  proname => 'cash_div_int4', prorettype => 'money',
1773  proargtypes => 'money int4', prosrc => 'cash_div_int4' },
1774{ oid => '866',
1775  proname => 'cash_mul_int2', prorettype => 'money',
1776  proargtypes => 'money int2', prosrc => 'cash_mul_int2' },
1777{ oid => '867',
1778  proname => 'cash_div_int2', prorettype => 'money',
1779  proargtypes => 'money int2', prosrc => 'cash_div_int2' },
1780
1781{ oid => '886', descr => 'I/O',
1782  proname => 'cash_in', provolatile => 's', prorettype => 'money',
1783  proargtypes => 'cstring', prosrc => 'cash_in' },
1784{ oid => '887', descr => 'I/O',
1785  proname => 'cash_out', provolatile => 's', prorettype => 'cstring',
1786  proargtypes => 'money', prosrc => 'cash_out' },
1787{ oid => '888',
1788  proname => 'cash_eq', proleakproof => 't', prorettype => 'bool',
1789  proargtypes => 'money money', prosrc => 'cash_eq' },
1790{ oid => '889',
1791  proname => 'cash_ne', proleakproof => 't', prorettype => 'bool',
1792  proargtypes => 'money money', prosrc => 'cash_ne' },
1793{ oid => '890',
1794  proname => 'cash_lt', proleakproof => 't', prorettype => 'bool',
1795  proargtypes => 'money money', prosrc => 'cash_lt' },
1796{ oid => '891',
1797  proname => 'cash_le', proleakproof => 't', prorettype => 'bool',
1798  proargtypes => 'money money', prosrc => 'cash_le' },
1799{ oid => '892',
1800  proname => 'cash_gt', proleakproof => 't', prorettype => 'bool',
1801  proargtypes => 'money money', prosrc => 'cash_gt' },
1802{ oid => '893',
1803  proname => 'cash_ge', proleakproof => 't', prorettype => 'bool',
1804  proargtypes => 'money money', prosrc => 'cash_ge' },
1805{ oid => '894',
1806  proname => 'cash_pl', prorettype => 'money', proargtypes => 'money money',
1807  prosrc => 'cash_pl' },
1808{ oid => '895',
1809  proname => 'cash_mi', prorettype => 'money', proargtypes => 'money money',
1810  prosrc => 'cash_mi' },
1811{ oid => '896',
1812  proname => 'cash_mul_flt8', prorettype => 'money',
1813  proargtypes => 'money float8', prosrc => 'cash_mul_flt8' },
1814{ oid => '897',
1815  proname => 'cash_div_flt8', prorettype => 'money',
1816  proargtypes => 'money float8', prosrc => 'cash_div_flt8' },
1817{ oid => '898', descr => 'larger of two',
1818  proname => 'cashlarger', prorettype => 'money', proargtypes => 'money money',
1819  prosrc => 'cashlarger' },
1820{ oid => '899', descr => 'smaller of two',
1821  proname => 'cashsmaller', prorettype => 'money', proargtypes => 'money money',
1822  prosrc => 'cashsmaller' },
1823{ oid => '919',
1824  proname => 'flt8_mul_cash', prorettype => 'money',
1825  proargtypes => 'float8 money', prosrc => 'flt8_mul_cash' },
1826{ oid => '935', descr => 'output money amount as words',
1827  proname => 'cash_words', prorettype => 'text', proargtypes => 'money',
1828  prosrc => 'cash_words' },
1829{ oid => '3822',
1830  proname => 'cash_div_cash', prorettype => 'float8',
1831  proargtypes => 'money money', prosrc => 'cash_div_cash' },
1832{ oid => '3823', descr => 'convert money to numeric',
1833  proname => 'numeric', provolatile => 's', prorettype => 'numeric',
1834  proargtypes => 'money', prosrc => 'cash_numeric' },
1835{ oid => '3824', descr => 'convert numeric to money',
1836  proname => 'money', provolatile => 's', prorettype => 'money',
1837  proargtypes => 'numeric', prosrc => 'numeric_cash' },
1838{ oid => '3811', descr => 'convert int4 to money',
1839  proname => 'money', provolatile => 's', prorettype => 'money',
1840  proargtypes => 'int4', prosrc => 'int4_cash' },
1841{ oid => '3812', descr => 'convert int8 to money',
1842  proname => 'money', provolatile => 's', prorettype => 'money',
1843  proargtypes => 'int8', prosrc => 'int8_cash' },
1844
1845# OIDS 900 - 999
1846
1847{ oid => '940', descr => 'modulus',
1848  proname => 'mod', prorettype => 'int2', proargtypes => 'int2 int2',
1849  prosrc => 'int2mod' },
1850{ oid => '941', descr => 'modulus',
1851  proname => 'mod', prorettype => 'int4', proargtypes => 'int4 int4',
1852  prosrc => 'int4mod' },
1853
1854{ oid => '945',
1855  proname => 'int8mod', prorettype => 'int8', proargtypes => 'int8 int8',
1856  prosrc => 'int8mod' },
1857{ oid => '947', descr => 'modulus',
1858  proname => 'mod', prorettype => 'int8', proargtypes => 'int8 int8',
1859  prosrc => 'int8mod' },
1860
1861{ oid => '5044', descr => 'greatest common divisor',
1862  proname => 'gcd', prorettype => 'int4', proargtypes => 'int4 int4',
1863  prosrc => 'int4gcd' },
1864{ oid => '5045', descr => 'greatest common divisor',
1865  proname => 'gcd', prorettype => 'int8', proargtypes => 'int8 int8',
1866  prosrc => 'int8gcd' },
1867
1868{ oid => '5046', descr => 'least common multiple',
1869  proname => 'lcm', prorettype => 'int4', proargtypes => 'int4 int4',
1870  prosrc => 'int4lcm' },
1871{ oid => '5047', descr => 'least common multiple',
1872  proname => 'lcm', prorettype => 'int8', proargtypes => 'int8 int8',
1873  prosrc => 'int8lcm' },
1874
1875{ oid => '944', descr => 'convert text to char',
1876  proname => 'char', prorettype => 'char', proargtypes => 'text',
1877  prosrc => 'text_char' },
1878{ oid => '946', descr => 'convert char to text',
1879  proname => 'text', prorettype => 'text', proargtypes => 'char',
1880  prosrc => 'char_text' },
1881
1882{ oid => '952', descr => 'large object open',
1883  proname => 'lo_open', provolatile => 'v', proparallel => 'u',
1884  prorettype => 'int4', proargtypes => 'oid int4', prosrc => 'be_lo_open' },
1885{ oid => '953', descr => 'large object close',
1886  proname => 'lo_close', provolatile => 'v', proparallel => 'u',
1887  prorettype => 'int4', proargtypes => 'int4', prosrc => 'be_lo_close' },
1888{ oid => '954', descr => 'large object read',
1889  proname => 'loread', provolatile => 'v', proparallel => 'u',
1890  prorettype => 'bytea', proargtypes => 'int4 int4', prosrc => 'be_loread' },
1891{ oid => '955', descr => 'large object write',
1892  proname => 'lowrite', provolatile => 'v', proparallel => 'u',
1893  prorettype => 'int4', proargtypes => 'int4 bytea', prosrc => 'be_lowrite' },
1894{ oid => '956', descr => 'large object seek',
1895  proname => 'lo_lseek', provolatile => 'v', proparallel => 'u',
1896  prorettype => 'int4', proargtypes => 'int4 int4 int4',
1897  prosrc => 'be_lo_lseek' },
1898{ oid => '3170', descr => 'large object seek (64 bit)',
1899  proname => 'lo_lseek64', provolatile => 'v', proparallel => 'u',
1900  prorettype => 'int8', proargtypes => 'int4 int8 int4',
1901  prosrc => 'be_lo_lseek64' },
1902{ oid => '957', descr => 'large object create',
1903  proname => 'lo_creat', provolatile => 'v', proparallel => 'u',
1904  prorettype => 'oid', proargtypes => 'int4', prosrc => 'be_lo_creat' },
1905{ oid => '715', descr => 'large object create',
1906  proname => 'lo_create', provolatile => 'v', proparallel => 'u',
1907  prorettype => 'oid', proargtypes => 'oid', prosrc => 'be_lo_create' },
1908{ oid => '958', descr => 'large object position',
1909  proname => 'lo_tell', provolatile => 'v', proparallel => 'u',
1910  prorettype => 'int4', proargtypes => 'int4', prosrc => 'be_lo_tell' },
1911{ oid => '3171', descr => 'large object position (64 bit)',
1912  proname => 'lo_tell64', provolatile => 'v', proparallel => 'u',
1913  prorettype => 'int8', proargtypes => 'int4', prosrc => 'be_lo_tell64' },
1914{ oid => '1004', descr => 'truncate large object',
1915  proname => 'lo_truncate', provolatile => 'v', proparallel => 'u',
1916  prorettype => 'int4', proargtypes => 'int4 int4',
1917  prosrc => 'be_lo_truncate' },
1918{ oid => '3172', descr => 'truncate large object (64 bit)',
1919  proname => 'lo_truncate64', provolatile => 'v', proparallel => 'u',
1920  prorettype => 'int4', proargtypes => 'int4 int8',
1921  prosrc => 'be_lo_truncate64' },
1922
1923{ oid => '3457', descr => 'create new large object with given content',
1924  proname => 'lo_from_bytea', provolatile => 'v', proparallel => 'u',
1925  prorettype => 'oid', proargtypes => 'oid bytea',
1926  prosrc => 'be_lo_from_bytea' },
1927{ oid => '3458', descr => 'read entire large object',
1928  proname => 'lo_get', provolatile => 'v', proparallel => 'u',
1929  prorettype => 'bytea', proargtypes => 'oid', prosrc => 'be_lo_get' },
1930{ oid => '3459', descr => 'read large object from offset for length',
1931  proname => 'lo_get', provolatile => 'v', proparallel => 'u',
1932  prorettype => 'bytea', proargtypes => 'oid int8 int4',
1933  prosrc => 'be_lo_get_fragment' },
1934{ oid => '3460', descr => 'write data at offset',
1935  proname => 'lo_put', provolatile => 'v', proparallel => 'u',
1936  prorettype => 'void', proargtypes => 'oid int8 bytea',
1937  prosrc => 'be_lo_put' },
1938
1939{ oid => '959',
1940  proname => 'on_pl', prorettype => 'bool', proargtypes => 'point line',
1941  prosrc => 'on_pl' },
1942{ oid => '960',
1943  proname => 'on_sl', prorettype => 'bool', proargtypes => 'lseg line',
1944  prosrc => 'on_sl' },
1945{ oid => '961',
1946  proname => 'close_pl', prorettype => 'point', proargtypes => 'point line',
1947  prosrc => 'close_pl' },
1948{ oid => '962',
1949  proname => 'close_sl', prorettype => 'point', proargtypes => 'lseg line',
1950  prosrc => 'close_sl' },
1951{ oid => '963',
1952  proname => 'close_lb', prorettype => 'point', proargtypes => 'line box',
1953  prosrc => 'close_lb' },
1954
1955{ oid => '964', descr => 'large object unlink (delete)',
1956  proname => 'lo_unlink', provolatile => 'v', proparallel => 'u',
1957  prorettype => 'int4', proargtypes => 'oid', prosrc => 'be_lo_unlink' },
1958
1959{ oid => '973',
1960  proname => 'path_inter', prorettype => 'bool', proargtypes => 'path path',
1961  prosrc => 'path_inter' },
1962{ oid => '975', descr => 'box area',
1963  proname => 'area', prorettype => 'float8', proargtypes => 'box',
1964  prosrc => 'box_area' },
1965{ oid => '976', descr => 'box width',
1966  proname => 'width', prorettype => 'float8', proargtypes => 'box',
1967  prosrc => 'box_width' },
1968{ oid => '977', descr => 'box height',
1969  proname => 'height', prorettype => 'float8', proargtypes => 'box',
1970  prosrc => 'box_height' },
1971{ oid => '978',
1972  proname => 'box_distance', prorettype => 'float8', proargtypes => 'box box',
1973  prosrc => 'box_distance' },
1974{ oid => '979', descr => 'area of a closed path',
1975  proname => 'area', prorettype => 'float8', proargtypes => 'path',
1976  prosrc => 'path_area' },
1977{ oid => '980',
1978  proname => 'box_intersect', prorettype => 'box', proargtypes => 'box box',
1979  prosrc => 'box_intersect' },
1980{ oid => '4067', descr => 'bounding box of two boxes',
1981  proname => 'bound_box', prorettype => 'box', proargtypes => 'box box',
1982  prosrc => 'boxes_bound_box' },
1983{ oid => '981', descr => 'box diagonal',
1984  proname => 'diagonal', prorettype => 'lseg', proargtypes => 'box',
1985  prosrc => 'box_diagonal' },
1986{ oid => '982',
1987  proname => 'path_n_lt', prorettype => 'bool', proargtypes => 'path path',
1988  prosrc => 'path_n_lt' },
1989{ oid => '983',
1990  proname => 'path_n_gt', prorettype => 'bool', proargtypes => 'path path',
1991  prosrc => 'path_n_gt' },
1992{ oid => '984',
1993  proname => 'path_n_eq', prorettype => 'bool', proargtypes => 'path path',
1994  prosrc => 'path_n_eq' },
1995{ oid => '985',
1996  proname => 'path_n_le', prorettype => 'bool', proargtypes => 'path path',
1997  prosrc => 'path_n_le' },
1998{ oid => '986',
1999  proname => 'path_n_ge', prorettype => 'bool', proargtypes => 'path path',
2000  prosrc => 'path_n_ge' },
2001{ oid => '987',
2002  proname => 'path_length', prorettype => 'float8', proargtypes => 'path',
2003  prosrc => 'path_length' },
2004{ oid => '988',
2005  proname => 'point_ne', prorettype => 'bool', proargtypes => 'point point',
2006  prosrc => 'point_ne' },
2007{ oid => '989',
2008  proname => 'point_vert', prorettype => 'bool', proargtypes => 'point point',
2009  prosrc => 'point_vert' },
2010{ oid => '990',
2011  proname => 'point_horiz', prorettype => 'bool', proargtypes => 'point point',
2012  prosrc => 'point_horiz' },
2013{ oid => '991',
2014  proname => 'point_distance', prorettype => 'float8',
2015  proargtypes => 'point point', prosrc => 'point_distance' },
2016{ oid => '992', descr => 'slope between points',
2017  proname => 'slope', prorettype => 'float8', proargtypes => 'point point',
2018  prosrc => 'point_slope' },
2019{ oid => '993', descr => 'convert points to line segment',
2020  proname => 'lseg', prorettype => 'lseg', proargtypes => 'point point',
2021  prosrc => 'lseg_construct' },
2022{ oid => '994',
2023  proname => 'lseg_intersect', prorettype => 'bool', proargtypes => 'lseg lseg',
2024  prosrc => 'lseg_intersect' },
2025{ oid => '995',
2026  proname => 'lseg_parallel', prorettype => 'bool', proargtypes => 'lseg lseg',
2027  prosrc => 'lseg_parallel' },
2028{ oid => '996',
2029  proname => 'lseg_perp', prorettype => 'bool', proargtypes => 'lseg lseg',
2030  prosrc => 'lseg_perp' },
2031{ oid => '997',
2032  proname => 'lseg_vertical', prorettype => 'bool', proargtypes => 'lseg',
2033  prosrc => 'lseg_vertical' },
2034{ oid => '998',
2035  proname => 'lseg_horizontal', prorettype => 'bool', proargtypes => 'lseg',
2036  prosrc => 'lseg_horizontal' },
2037{ oid => '999',
2038  proname => 'lseg_eq', proleakproof => 't', prorettype => 'bool',
2039  proargtypes => 'lseg lseg', prosrc => 'lseg_eq' },
2040
2041# OIDS 1000 - 1999
2042
2043{ oid => '1026', descr => 'adjust timestamp to new time zone',
2044  proname => 'timezone', prorettype => 'timestamp',
2045  proargtypes => 'interval timestamptz', prosrc => 'timestamptz_izone' },
2046
2047{ oid => '1031', descr => 'I/O',
2048  proname => 'aclitemin', provolatile => 's', prorettype => 'aclitem',
2049  proargtypes => 'cstring', prosrc => 'aclitemin' },
2050{ oid => '1032', descr => 'I/O',
2051  proname => 'aclitemout', provolatile => 's', prorettype => 'cstring',
2052  proargtypes => 'aclitem', prosrc => 'aclitemout' },
2053{ oid => '1035', descr => 'add/update ACL item',
2054  proname => 'aclinsert', prorettype => '_aclitem',
2055  proargtypes => '_aclitem aclitem', prosrc => 'aclinsert' },
2056{ oid => '1036', descr => 'remove ACL item',
2057  proname => 'aclremove', prorettype => '_aclitem',
2058  proargtypes => '_aclitem aclitem', prosrc => 'aclremove' },
2059{ oid => '1037', descr => 'contains',
2060  proname => 'aclcontains', prorettype => 'bool',
2061  proargtypes => '_aclitem aclitem', prosrc => 'aclcontains' },
2062{ oid => '1062',
2063  proname => 'aclitemeq', prorettype => 'bool',
2064  proargtypes => 'aclitem aclitem', prosrc => 'aclitem_eq' },
2065{ oid => '1365', descr => 'make ACL item',
2066  proname => 'makeaclitem', prorettype => 'aclitem',
2067  proargtypes => 'oid oid text bool', prosrc => 'makeaclitem' },
2068{ oid => '3943',
2069  descr => 'show hardwired default privileges, primarily for use by the information schema',
2070  proname => 'acldefault', prorettype => '_aclitem', proargtypes => 'char oid',
2071  prosrc => 'acldefault_sql' },
2072{ oid => '1689',
2073  descr => 'convert ACL item array to table, primarily for use by information schema',
2074  proname => 'aclexplode', prorows => '10', proretset => 't',
2075  provolatile => 's', prorettype => 'record', proargtypes => '_aclitem',
2076  proallargtypes => '{_aclitem,oid,oid,text,bool}',
2077  proargmodes => '{i,o,o,o,o}',
2078  proargnames => '{acl,grantor,grantee,privilege_type,is_grantable}',
2079  prosrc => 'aclexplode' },
2080{ oid => '1044', descr => 'I/O',
2081  proname => 'bpcharin', prorettype => 'bpchar',
2082  proargtypes => 'cstring oid int4', prosrc => 'bpcharin' },
2083{ oid => '1045', descr => 'I/O',
2084  proname => 'bpcharout', prorettype => 'cstring', proargtypes => 'bpchar',
2085  prosrc => 'bpcharout' },
2086{ oid => '2913', descr => 'I/O typmod',
2087  proname => 'bpchartypmodin', prorettype => 'int4', proargtypes => '_cstring',
2088  prosrc => 'bpchartypmodin' },
2089{ oid => '2914', descr => 'I/O typmod',
2090  proname => 'bpchartypmodout', prorettype => 'cstring', proargtypes => 'int4',
2091  prosrc => 'bpchartypmodout' },
2092{ oid => '1046', descr => 'I/O',
2093  proname => 'varcharin', prorettype => 'varchar',
2094  proargtypes => 'cstring oid int4', prosrc => 'varcharin' },
2095{ oid => '1047', descr => 'I/O',
2096  proname => 'varcharout', prorettype => 'cstring', proargtypes => 'varchar',
2097  prosrc => 'varcharout' },
2098{ oid => '2915', descr => 'I/O typmod',
2099  proname => 'varchartypmodin', prorettype => 'int4', proargtypes => '_cstring',
2100  prosrc => 'varchartypmodin' },
2101{ oid => '2916', descr => 'I/O typmod',
2102  proname => 'varchartypmodout', prorettype => 'cstring', proargtypes => 'int4',
2103  prosrc => 'varchartypmodout' },
2104{ oid => '1048',
2105  proname => 'bpchareq', proleakproof => 't', prorettype => 'bool',
2106  proargtypes => 'bpchar bpchar', prosrc => 'bpchareq' },
2107{ oid => '1049',
2108  proname => 'bpcharlt', proleakproof => 't', prorettype => 'bool',
2109  proargtypes => 'bpchar bpchar', prosrc => 'bpcharlt' },
2110{ oid => '1050',
2111  proname => 'bpcharle', proleakproof => 't', prorettype => 'bool',
2112  proargtypes => 'bpchar bpchar', prosrc => 'bpcharle' },
2113{ oid => '1051',
2114  proname => 'bpchargt', proleakproof => 't', prorettype => 'bool',
2115  proargtypes => 'bpchar bpchar', prosrc => 'bpchargt' },
2116{ oid => '1052',
2117  proname => 'bpcharge', proleakproof => 't', prorettype => 'bool',
2118  proargtypes => 'bpchar bpchar', prosrc => 'bpcharge' },
2119{ oid => '1053',
2120  proname => 'bpcharne', proleakproof => 't', prorettype => 'bool',
2121  proargtypes => 'bpchar bpchar', prosrc => 'bpcharne' },
2122{ oid => '1063', descr => 'larger of two',
2123  proname => 'bpchar_larger', proleakproof => 't', prorettype => 'bpchar',
2124  proargtypes => 'bpchar bpchar', prosrc => 'bpchar_larger' },
2125{ oid => '1064', descr => 'smaller of two',
2126  proname => 'bpchar_smaller', proleakproof => 't', prorettype => 'bpchar',
2127  proargtypes => 'bpchar bpchar', prosrc => 'bpchar_smaller' },
2128{ oid => '1078', descr => 'less-equal-greater',
2129  proname => 'bpcharcmp', proleakproof => 't', prorettype => 'int4',
2130  proargtypes => 'bpchar bpchar', prosrc => 'bpcharcmp' },
2131{ oid => '3328', descr => 'sort support',
2132  proname => 'bpchar_sortsupport', prorettype => 'void',
2133  proargtypes => 'internal', prosrc => 'bpchar_sortsupport' },
2134{ oid => '1080', descr => 'hash',
2135  proname => 'hashbpchar', prorettype => 'int4', proargtypes => 'bpchar',
2136  prosrc => 'hashbpchar' },
2137{ oid => '972', descr => 'hash',
2138  proname => 'hashbpcharextended', prorettype => 'int8',
2139  proargtypes => 'bpchar int8', prosrc => 'hashbpcharextended' },
2140{ oid => '1081', descr => 'format a type oid and atttypmod to canonical SQL',
2141  proname => 'format_type', proisstrict => 'f', provolatile => 's',
2142  prorettype => 'text', proargtypes => 'oid int4', prosrc => 'format_type' },
2143{ oid => '1084', descr => 'I/O',
2144  proname => 'date_in', provolatile => 's', prorettype => 'date',
2145  proargtypes => 'cstring', prosrc => 'date_in' },
2146{ oid => '1085', descr => 'I/O',
2147  proname => 'date_out', provolatile => 's', prorettype => 'cstring',
2148  proargtypes => 'date', prosrc => 'date_out' },
2149{ oid => '1086',
2150  proname => 'date_eq', proleakproof => 't', prorettype => 'bool',
2151  proargtypes => 'date date', prosrc => 'date_eq' },
2152{ oid => '1087',
2153  proname => 'date_lt', proleakproof => 't', prorettype => 'bool',
2154  proargtypes => 'date date', prosrc => 'date_lt' },
2155{ oid => '1088',
2156  proname => 'date_le', proleakproof => 't', prorettype => 'bool',
2157  proargtypes => 'date date', prosrc => 'date_le' },
2158{ oid => '1089',
2159  proname => 'date_gt', proleakproof => 't', prorettype => 'bool',
2160  proargtypes => 'date date', prosrc => 'date_gt' },
2161{ oid => '1090',
2162  proname => 'date_ge', proleakproof => 't', prorettype => 'bool',
2163  proargtypes => 'date date', prosrc => 'date_ge' },
2164{ oid => '1091',
2165  proname => 'date_ne', proleakproof => 't', prorettype => 'bool',
2166  proargtypes => 'date date', prosrc => 'date_ne' },
2167{ oid => '1092', descr => 'less-equal-greater',
2168  proname => 'date_cmp', proleakproof => 't', prorettype => 'int4',
2169  proargtypes => 'date date', prosrc => 'date_cmp' },
2170{ oid => '3136', descr => 'sort support',
2171  proname => 'date_sortsupport', prorettype => 'void',
2172  proargtypes => 'internal', prosrc => 'date_sortsupport' },
2173{ oid => '4133', descr => 'window RANGE support',
2174  proname => 'in_range', prorettype => 'bool',
2175  proargtypes => 'date date interval bool bool',
2176  prosrc => 'in_range_date_interval' },
2177
2178# OIDS 1100 - 1199
2179
2180{ oid => '1102',
2181  proname => 'time_lt', proleakproof => 't', prorettype => 'bool',
2182  proargtypes => 'time time', prosrc => 'time_lt' },
2183{ oid => '1103',
2184  proname => 'time_le', proleakproof => 't', prorettype => 'bool',
2185  proargtypes => 'time time', prosrc => 'time_le' },
2186{ oid => '1104',
2187  proname => 'time_gt', proleakproof => 't', prorettype => 'bool',
2188  proargtypes => 'time time', prosrc => 'time_gt' },
2189{ oid => '1105',
2190  proname => 'time_ge', proleakproof => 't', prorettype => 'bool',
2191  proargtypes => 'time time', prosrc => 'time_ge' },
2192{ oid => '1106',
2193  proname => 'time_ne', proleakproof => 't', prorettype => 'bool',
2194  proargtypes => 'time time', prosrc => 'time_ne' },
2195{ oid => '1107', descr => 'less-equal-greater',
2196  proname => 'time_cmp', proleakproof => 't', prorettype => 'int4',
2197  proargtypes => 'time time', prosrc => 'time_cmp' },
2198{ oid => '1138', descr => 'larger of two',
2199  proname => 'date_larger', prorettype => 'date', proargtypes => 'date date',
2200  prosrc => 'date_larger' },
2201{ oid => '1139', descr => 'smaller of two',
2202  proname => 'date_smaller', prorettype => 'date', proargtypes => 'date date',
2203  prosrc => 'date_smaller' },
2204{ oid => '1140',
2205  proname => 'date_mi', prorettype => 'int4', proargtypes => 'date date',
2206  prosrc => 'date_mi' },
2207{ oid => '1141',
2208  proname => 'date_pli', prorettype => 'date', proargtypes => 'date int4',
2209  prosrc => 'date_pli' },
2210{ oid => '1142',
2211  proname => 'date_mii', prorettype => 'date', proargtypes => 'date int4',
2212  prosrc => 'date_mii' },
2213{ oid => '1143', descr => 'I/O',
2214  proname => 'time_in', provolatile => 's', prorettype => 'time',
2215  proargtypes => 'cstring oid int4', prosrc => 'time_in' },
2216{ oid => '1144', descr => 'I/O',
2217  proname => 'time_out', prorettype => 'cstring', proargtypes => 'time',
2218  prosrc => 'time_out' },
2219{ oid => '2909', descr => 'I/O typmod',
2220  proname => 'timetypmodin', prorettype => 'int4', proargtypes => '_cstring',
2221  prosrc => 'timetypmodin' },
2222{ oid => '2910', descr => 'I/O typmod',
2223  proname => 'timetypmodout', prorettype => 'cstring', proargtypes => 'int4',
2224  prosrc => 'timetypmodout' },
2225{ oid => '1145',
2226  proname => 'time_eq', proleakproof => 't', prorettype => 'bool',
2227  proargtypes => 'time time', prosrc => 'time_eq' },
2228
2229{ oid => '1146',
2230  proname => 'circle_add_pt', prorettype => 'circle',
2231  proargtypes => 'circle point', prosrc => 'circle_add_pt' },
2232{ oid => '1147',
2233  proname => 'circle_sub_pt', prorettype => 'circle',
2234  proargtypes => 'circle point', prosrc => 'circle_sub_pt' },
2235{ oid => '1148',
2236  proname => 'circle_mul_pt', prorettype => 'circle',
2237  proargtypes => 'circle point', prosrc => 'circle_mul_pt' },
2238{ oid => '1149',
2239  proname => 'circle_div_pt', prorettype => 'circle',
2240  proargtypes => 'circle point', prosrc => 'circle_div_pt' },
2241
2242{ oid => '1150', descr => 'I/O',
2243  proname => 'timestamptz_in', provolatile => 's', prorettype => 'timestamptz',
2244  proargtypes => 'cstring oid int4', prosrc => 'timestamptz_in' },
2245{ oid => '1151', descr => 'I/O',
2246  proname => 'timestamptz_out', provolatile => 's', prorettype => 'cstring',
2247  proargtypes => 'timestamptz', prosrc => 'timestamptz_out' },
2248{ oid => '2907', descr => 'I/O typmod',
2249  proname => 'timestamptztypmodin', prorettype => 'int4',
2250  proargtypes => '_cstring', prosrc => 'timestamptztypmodin' },
2251{ oid => '2908', descr => 'I/O typmod',
2252  proname => 'timestamptztypmodout', prorettype => 'cstring',
2253  proargtypes => 'int4', prosrc => 'timestamptztypmodout' },
2254{ oid => '1152',
2255  proname => 'timestamptz_eq', proleakproof => 't', prorettype => 'bool',
2256  proargtypes => 'timestamptz timestamptz', prosrc => 'timestamp_eq' },
2257{ oid => '1153',
2258  proname => 'timestamptz_ne', proleakproof => 't', prorettype => 'bool',
2259  proargtypes => 'timestamptz timestamptz', prosrc => 'timestamp_ne' },
2260{ oid => '1154',
2261  proname => 'timestamptz_lt', proleakproof => 't', prorettype => 'bool',
2262  proargtypes => 'timestamptz timestamptz', prosrc => 'timestamp_lt' },
2263{ oid => '1155',
2264  proname => 'timestamptz_le', proleakproof => 't', prorettype => 'bool',
2265  proargtypes => 'timestamptz timestamptz', prosrc => 'timestamp_le' },
2266{ oid => '1156',
2267  proname => 'timestamptz_ge', proleakproof => 't', prorettype => 'bool',
2268  proargtypes => 'timestamptz timestamptz', prosrc => 'timestamp_ge' },
2269{ oid => '1157',
2270  proname => 'timestamptz_gt', proleakproof => 't', prorettype => 'bool',
2271  proargtypes => 'timestamptz timestamptz', prosrc => 'timestamp_gt' },
2272{ oid => '1158', descr => 'convert UNIX epoch to timestamptz',
2273  proname => 'to_timestamp', prorettype => 'timestamptz',
2274  proargtypes => 'float8', prosrc => 'float8_timestamptz' },
2275{ oid => '1159', descr => 'adjust timestamp to new time zone',
2276  proname => 'timezone', prorettype => 'timestamp',
2277  proargtypes => 'text timestamptz', prosrc => 'timestamptz_zone' },
2278
2279{ oid => '1160', descr => 'I/O',
2280  proname => 'interval_in', provolatile => 's', prorettype => 'interval',
2281  proargtypes => 'cstring oid int4', prosrc => 'interval_in' },
2282{ oid => '1161', descr => 'I/O',
2283  proname => 'interval_out', prorettype => 'cstring', proargtypes => 'interval',
2284  prosrc => 'interval_out' },
2285{ oid => '2903', descr => 'I/O typmod',
2286  proname => 'intervaltypmodin', prorettype => 'int4',
2287  proargtypes => '_cstring', prosrc => 'intervaltypmodin' },
2288{ oid => '2904', descr => 'I/O typmod',
2289  proname => 'intervaltypmodout', prorettype => 'cstring',
2290  proargtypes => 'int4', prosrc => 'intervaltypmodout' },
2291{ oid => '1162',
2292  proname => 'interval_eq', proleakproof => 't', prorettype => 'bool',
2293  proargtypes => 'interval interval', prosrc => 'interval_eq' },
2294{ oid => '1163',
2295  proname => 'interval_ne', proleakproof => 't', prorettype => 'bool',
2296  proargtypes => 'interval interval', prosrc => 'interval_ne' },
2297{ oid => '1164',
2298  proname => 'interval_lt', proleakproof => 't', prorettype => 'bool',
2299  proargtypes => 'interval interval', prosrc => 'interval_lt' },
2300{ oid => '1165',
2301  proname => 'interval_le', proleakproof => 't', prorettype => 'bool',
2302  proargtypes => 'interval interval', prosrc => 'interval_le' },
2303{ oid => '1166',
2304  proname => 'interval_ge', proleakproof => 't', prorettype => 'bool',
2305  proargtypes => 'interval interval', prosrc => 'interval_ge' },
2306{ oid => '1167',
2307  proname => 'interval_gt', proleakproof => 't', prorettype => 'bool',
2308  proargtypes => 'interval interval', prosrc => 'interval_gt' },
2309{ oid => '1168',
2310  proname => 'interval_um', prorettype => 'interval', proargtypes => 'interval',
2311  prosrc => 'interval_um' },
2312{ oid => '1169',
2313  proname => 'interval_pl', prorettype => 'interval',
2314  proargtypes => 'interval interval', prosrc => 'interval_pl' },
2315{ oid => '1170',
2316  proname => 'interval_mi', prorettype => 'interval',
2317  proargtypes => 'interval interval', prosrc => 'interval_mi' },
2318{ oid => '1171', descr => 'extract field from timestamp with time zone',
2319  proname => 'date_part', provolatile => 's', prorettype => 'float8',
2320  proargtypes => 'text timestamptz', prosrc => 'timestamptz_part' },
2321{ oid => '1172', descr => 'extract field from interval',
2322  proname => 'date_part', prorettype => 'float8',
2323  proargtypes => 'text interval', prosrc => 'interval_part' },
2324{ oid => '1174', descr => 'convert date to timestamp with time zone',
2325  proname => 'timestamptz', provolatile => 's', prorettype => 'timestamptz',
2326  proargtypes => 'date', prosrc => 'date_timestamptz' },
2327{ oid => '2711',
2328  descr => 'promote groups of 24 hours to numbers of days and promote groups of 30 days to numbers of months',
2329  proname => 'justify_interval', prorettype => 'interval',
2330  proargtypes => 'interval', prosrc => 'interval_justify_interval' },
2331{ oid => '1175', descr => 'promote groups of 24 hours to numbers of days',
2332  proname => 'justify_hours', prorettype => 'interval',
2333  proargtypes => 'interval', prosrc => 'interval_justify_hours' },
2334{ oid => '1295', descr => 'promote groups of 30 days to numbers of months',
2335  proname => 'justify_days', prorettype => 'interval',
2336  proargtypes => 'interval', prosrc => 'interval_justify_days' },
2337{ oid => '1176', descr => 'convert date and time to timestamp with time zone',
2338  proname => 'timestamptz', prolang => 'sql', provolatile => 's',
2339  prorettype => 'timestamptz', proargtypes => 'date time',
2340  prosrc => 'select cast(($1 + $2) as timestamp with time zone)' },
2341{ oid => '1178', descr => 'convert timestamp with time zone to date',
2342  proname => 'date', provolatile => 's', prorettype => 'date',
2343  proargtypes => 'timestamptz', prosrc => 'timestamptz_date' },
2344{ oid => '1181',
2345  descr => 'age of a transaction ID, in transactions before current transaction',
2346  proname => 'age', provolatile => 's', proparallel => 'r',
2347  prorettype => 'int4', proargtypes => 'xid', prosrc => 'xid_age' },
2348{ oid => '3939',
2349  descr => 'age of a multi-transaction ID, in multi-transactions before current multi-transaction',
2350  proname => 'mxid_age', provolatile => 's', prorettype => 'int4',
2351  proargtypes => 'xid', prosrc => 'mxid_age' },
2352
2353{ oid => '1188',
2354  proname => 'timestamptz_mi', prorettype => 'interval',
2355  proargtypes => 'timestamptz timestamptz', prosrc => 'timestamp_mi' },
2356{ oid => '1189',
2357  proname => 'timestamptz_pl_interval', provolatile => 's',
2358  prorettype => 'timestamptz', proargtypes => 'timestamptz interval',
2359  prosrc => 'timestamptz_pl_interval' },
2360{ oid => '1190',
2361  proname => 'timestamptz_mi_interval', provolatile => 's',
2362  prorettype => 'timestamptz', proargtypes => 'timestamptz interval',
2363  prosrc => 'timestamptz_mi_interval' },
2364{ oid => '1195', descr => 'smaller of two',
2365  proname => 'timestamptz_smaller', prorettype => 'timestamptz',
2366  proargtypes => 'timestamptz timestamptz', prosrc => 'timestamp_smaller' },
2367{ oid => '1196', descr => 'larger of two',
2368  proname => 'timestamptz_larger', prorettype => 'timestamptz',
2369  proargtypes => 'timestamptz timestamptz', prosrc => 'timestamp_larger' },
2370{ oid => '1197', descr => 'smaller of two',
2371  proname => 'interval_smaller', prorettype => 'interval',
2372  proargtypes => 'interval interval', prosrc => 'interval_smaller' },
2373{ oid => '1198', descr => 'larger of two',
2374  proname => 'interval_larger', prorettype => 'interval',
2375  proargtypes => 'interval interval', prosrc => 'interval_larger' },
2376{ oid => '1199', descr => 'date difference preserving months and years',
2377  proname => 'age', prorettype => 'interval',
2378  proargtypes => 'timestamptz timestamptz', prosrc => 'timestamptz_age' },
2379
2380# OIDS 1200 - 1299
2381
2382{ oid => '3918', descr => 'planner support for interval length coercion',
2383  proname => 'interval_support', prorettype => 'internal',
2384  proargtypes => 'internal', prosrc => 'interval_support' },
2385{ oid => '1200', descr => 'adjust interval precision',
2386  proname => 'interval', prosupport => 'interval_support',
2387  prorettype => 'interval', proargtypes => 'interval int4',
2388  prosrc => 'interval_scale' },
2389
2390{ oid => '1215', descr => 'get description for object id and catalog name',
2391  proname => 'obj_description', prolang => 'sql', procost => '100',
2392  provolatile => 's', prorettype => 'text', proargtypes => 'oid name',
2393  prosrc => 'select description from pg_catalog.pg_description where objoid = $1 and classoid = (select oid from pg_catalog.pg_class where relname = $2 and relnamespace = PGNSP) and objsubid = 0' },
2394{ oid => '1216', descr => 'get description for table column',
2395  proname => 'col_description', prolang => 'sql', procost => '100',
2396  provolatile => 's', prorettype => 'text', proargtypes => 'oid int4',
2397  prosrc => 'select description from pg_catalog.pg_description where objoid = $1 and classoid = \'pg_catalog.pg_class\'::pg_catalog.regclass and objsubid = $2' },
2398{ oid => '1993',
2399  descr => 'get description for object id and shared catalog name',
2400  proname => 'shobj_description', prolang => 'sql', procost => '100',
2401  provolatile => 's', prorettype => 'text', proargtypes => 'oid name',
2402  prosrc => 'select description from pg_catalog.pg_shdescription where objoid = $1 and classoid = (select oid from pg_catalog.pg_class where relname = $2 and relnamespace = PGNSP)' },
2403
2404{ oid => '1217',
2405  descr => 'truncate timestamp with time zone to specified units',
2406  proname => 'date_trunc', provolatile => 's', prorettype => 'timestamptz',
2407  proargtypes => 'text timestamptz', prosrc => 'timestamptz_trunc' },
2408{ oid => '1284',
2409  descr => 'truncate timestamp with time zone to specified units in specified time zone',
2410  proname => 'date_trunc', provolatile => 's', prorettype => 'timestamptz',
2411  proargtypes => 'text timestamptz text', prosrc => 'timestamptz_trunc_zone' },
2412{ oid => '1218', descr => 'truncate interval to specified units',
2413  proname => 'date_trunc', prorettype => 'interval',
2414  proargtypes => 'text interval', prosrc => 'interval_trunc' },
2415
2416{ oid => '1219', descr => 'increment',
2417  proname => 'int8inc', prorettype => 'int8', proargtypes => 'int8',
2418  prosrc => 'int8inc' },
2419{ oid => '3546', descr => 'decrement',
2420  proname => 'int8dec', prorettype => 'int8', proargtypes => 'int8',
2421  prosrc => 'int8dec' },
2422{ oid => '2804', descr => 'increment, ignores second argument',
2423  proname => 'int8inc_any', prorettype => 'int8', proargtypes => 'int8 any',
2424  prosrc => 'int8inc_any' },
2425{ oid => '3547', descr => 'decrement, ignores second argument',
2426  proname => 'int8dec_any', prorettype => 'int8', proargtypes => 'int8 any',
2427  prosrc => 'int8dec_any' },
2428{ oid => '1230',
2429  proname => 'int8abs', prorettype => 'int8', proargtypes => 'int8',
2430  prosrc => 'int8abs' },
2431
2432{ oid => '1236', descr => 'larger of two',
2433  proname => 'int8larger', prorettype => 'int8', proargtypes => 'int8 int8',
2434  prosrc => 'int8larger' },
2435{ oid => '1237', descr => 'smaller of two',
2436  proname => 'int8smaller', prorettype => 'int8', proargtypes => 'int8 int8',
2437  prosrc => 'int8smaller' },
2438
2439{ oid => '1238',
2440  proname => 'texticregexeq', prosupport => 'texticregexeq_support',
2441  prorettype => 'bool', proargtypes => 'text text', prosrc => 'texticregexeq' },
2442{ oid => '1024', descr => 'planner support for texticregexeq',
2443  proname => 'texticregexeq_support', prorettype => 'internal',
2444  proargtypes => 'internal', prosrc => 'texticregexeq_support' },
2445{ oid => '1239',
2446  proname => 'texticregexne', prorettype => 'bool', proargtypes => 'text text',
2447  prosrc => 'texticregexne' },
2448{ oid => '1240',
2449  proname => 'nameicregexeq', prosupport => 'texticregexeq_support',
2450  prorettype => 'bool', proargtypes => 'name text', prosrc => 'nameicregexeq' },
2451{ oid => '1241',
2452  proname => 'nameicregexne', prorettype => 'bool', proargtypes => 'name text',
2453  prosrc => 'nameicregexne' },
2454
2455{ oid => '1251',
2456  proname => 'int4abs', prorettype => 'int4', proargtypes => 'int4',
2457  prosrc => 'int4abs' },
2458{ oid => '1253',
2459  proname => 'int2abs', prorettype => 'int2', proargtypes => 'int2',
2460  prosrc => 'int2abs' },
2461
2462{ oid => '1271', descr => 'intervals overlap?',
2463  proname => 'overlaps', proisstrict => 'f', prorettype => 'bool',
2464  proargtypes => 'timetz timetz timetz timetz', prosrc => 'overlaps_timetz' },
2465{ oid => '1272',
2466  proname => 'datetime_pl', prorettype => 'timestamp',
2467  proargtypes => 'date time', prosrc => 'datetime_timestamp' },
2468{ oid => '1273', descr => 'extract field from time with time zone',
2469  proname => 'date_part', prorettype => 'float8', proargtypes => 'text timetz',
2470  prosrc => 'timetz_part' },
2471{ oid => '1274',
2472  proname => 'int84pl', prorettype => 'int8', proargtypes => 'int8 int4',
2473  prosrc => 'int84pl' },
2474{ oid => '1275',
2475  proname => 'int84mi', prorettype => 'int8', proargtypes => 'int8 int4',
2476  prosrc => 'int84mi' },
2477{ oid => '1276',
2478  proname => 'int84mul', prorettype => 'int8', proargtypes => 'int8 int4',
2479  prosrc => 'int84mul' },
2480{ oid => '1277',
2481  proname => 'int84div', prorettype => 'int8', proargtypes => 'int8 int4',
2482  prosrc => 'int84div' },
2483{ oid => '1278',
2484  proname => 'int48pl', prorettype => 'int8', proargtypes => 'int4 int8',
2485  prosrc => 'int48pl' },
2486{ oid => '1279',
2487  proname => 'int48mi', prorettype => 'int8', proargtypes => 'int4 int8',
2488  prosrc => 'int48mi' },
2489{ oid => '1280',
2490  proname => 'int48mul', prorettype => 'int8', proargtypes => 'int4 int8',
2491  prosrc => 'int48mul' },
2492{ oid => '1281',
2493  proname => 'int48div', prorettype => 'int8', proargtypes => 'int4 int8',
2494  prosrc => 'int48div' },
2495
2496{ oid => '837',
2497  proname => 'int82pl', prorettype => 'int8', proargtypes => 'int8 int2',
2498  prosrc => 'int82pl' },
2499{ oid => '838',
2500  proname => 'int82mi', prorettype => 'int8', proargtypes => 'int8 int2',
2501  prosrc => 'int82mi' },
2502{ oid => '839',
2503  proname => 'int82mul', prorettype => 'int8', proargtypes => 'int8 int2',
2504  prosrc => 'int82mul' },
2505{ oid => '840',
2506  proname => 'int82div', prorettype => 'int8', proargtypes => 'int8 int2',
2507  prosrc => 'int82div' },
2508{ oid => '841',
2509  proname => 'int28pl', prorettype => 'int8', proargtypes => 'int2 int8',
2510  prosrc => 'int28pl' },
2511{ oid => '942',
2512  proname => 'int28mi', prorettype => 'int8', proargtypes => 'int2 int8',
2513  prosrc => 'int28mi' },
2514{ oid => '943',
2515  proname => 'int28mul', prorettype => 'int8', proargtypes => 'int2 int8',
2516  prosrc => 'int28mul' },
2517{ oid => '948',
2518  proname => 'int28div', prorettype => 'int8', proargtypes => 'int2 int8',
2519  prosrc => 'int28div' },
2520
2521{ oid => '1287', descr => 'convert int8 to oid',
2522  proname => 'oid', prorettype => 'oid', proargtypes => 'int8',
2523  prosrc => 'i8tooid' },
2524{ oid => '1288', descr => 'convert oid to int8',
2525  proname => 'int8', prorettype => 'int8', proargtypes => 'oid',
2526  prosrc => 'oidtoi8' },
2527
2528{ oid => '1291',
2529  descr => 'trigger to suppress updates when new and old records match',
2530  proname => 'suppress_redundant_updates_trigger', provolatile => 'v',
2531  prorettype => 'trigger', proargtypes => '',
2532  prosrc => 'suppress_redundant_updates_trigger' },
2533
2534{ oid => '1292',
2535  proname => 'tideq', proleakproof => 't', prorettype => 'bool',
2536  proargtypes => 'tid tid', prosrc => 'tideq' },
2537{ oid => '1293', descr => 'latest tid of a tuple',
2538  proname => 'currtid', provolatile => 'v', proparallel => 'u',
2539  prorettype => 'tid', proargtypes => 'oid tid', prosrc => 'currtid_byreloid' },
2540{ oid => '1294', descr => 'latest tid of a tuple',
2541  proname => 'currtid2', provolatile => 'v', proparallel => 'u',
2542  prorettype => 'tid', proargtypes => 'text tid',
2543  prosrc => 'currtid_byrelname' },
2544{ oid => '1265',
2545  proname => 'tidne', proleakproof => 't', prorettype => 'bool',
2546  proargtypes => 'tid tid', prosrc => 'tidne' },
2547{ oid => '2790',
2548  proname => 'tidgt', proleakproof => 't', prorettype => 'bool',
2549  proargtypes => 'tid tid', prosrc => 'tidgt' },
2550{ oid => '2791',
2551  proname => 'tidlt', proleakproof => 't', prorettype => 'bool',
2552  proargtypes => 'tid tid', prosrc => 'tidlt' },
2553{ oid => '2792',
2554  proname => 'tidge', proleakproof => 't', prorettype => 'bool',
2555  proargtypes => 'tid tid', prosrc => 'tidge' },
2556{ oid => '2793',
2557  proname => 'tidle', proleakproof => 't', prorettype => 'bool',
2558  proargtypes => 'tid tid', prosrc => 'tidle' },
2559{ oid => '2794', descr => 'less-equal-greater',
2560  proname => 'bttidcmp', proleakproof => 't', prorettype => 'int4',
2561  proargtypes => 'tid tid', prosrc => 'bttidcmp' },
2562{ oid => '2795', descr => 'larger of two',
2563  proname => 'tidlarger', prorettype => 'tid', proargtypes => 'tid tid',
2564  prosrc => 'tidlarger' },
2565{ oid => '2796', descr => 'smaller of two',
2566  proname => 'tidsmaller', prorettype => 'tid', proargtypes => 'tid tid',
2567  prosrc => 'tidsmaller' },
2568{ oid => '2233', descr => 'hash',
2569  proname => 'hashtid', prorettype => 'int4', proargtypes => 'tid',
2570  prosrc => 'hashtid' },
2571{ oid => '2234', descr => 'hash',
2572  proname => 'hashtidextended', prorettype => 'int8', proargtypes => 'tid int8',
2573  prosrc => 'hashtidextended' },
2574
2575{ oid => '1296',
2576  proname => 'timedate_pl', prolang => 'sql', prorettype => 'timestamp',
2577  proargtypes => 'time date', prosrc => 'select ($2 + $1)' },
2578{ oid => '1297',
2579  proname => 'datetimetz_pl', prorettype => 'timestamptz',
2580  proargtypes => 'date timetz', prosrc => 'datetimetz_timestamptz' },
2581{ oid => '1298',
2582  proname => 'timetzdate_pl', prolang => 'sql', prorettype => 'timestamptz',
2583  proargtypes => 'timetz date', prosrc => 'select ($2 + $1)' },
2584{ oid => '1299', descr => 'current transaction time',
2585  proname => 'now', provolatile => 's', prorettype => 'timestamptz',
2586  proargtypes => '', prosrc => 'now' },
2587{ oid => '2647', descr => 'current transaction time',
2588  proname => 'transaction_timestamp', provolatile => 's',
2589  prorettype => 'timestamptz', proargtypes => '', prosrc => 'now' },
2590{ oid => '2648', descr => 'current statement time',
2591  proname => 'statement_timestamp', provolatile => 's',
2592  prorettype => 'timestamptz', proargtypes => '',
2593  prosrc => 'statement_timestamp' },
2594{ oid => '2649', descr => 'current clock time',
2595  proname => 'clock_timestamp', provolatile => 'v', prorettype => 'timestamptz',
2596  proargtypes => '', prosrc => 'clock_timestamp' },
2597
2598# OIDS 1300 - 1399
2599
2600{ oid => '1300',
2601  descr => 'restriction selectivity for position-comparison operators',
2602  proname => 'positionsel', provolatile => 's', prorettype => 'float8',
2603  proargtypes => 'internal oid internal int4', prosrc => 'positionsel' },
2604{ oid => '1301',
2605  descr => 'join selectivity for position-comparison operators',
2606  proname => 'positionjoinsel', provolatile => 's', prorettype => 'float8',
2607  proargtypes => 'internal oid internal int2 internal',
2608  prosrc => 'positionjoinsel' },
2609{ oid => '1302',
2610  descr => 'restriction selectivity for containment comparison operators',
2611  proname => 'contsel', provolatile => 's', prorettype => 'float8',
2612  proargtypes => 'internal oid internal int4', prosrc => 'contsel' },
2613{ oid => '1303',
2614  descr => 'join selectivity for containment comparison operators',
2615  proname => 'contjoinsel', provolatile => 's', prorettype => 'float8',
2616  proargtypes => 'internal oid internal int2 internal',
2617  prosrc => 'contjoinsel' },
2618
2619{ oid => '1304', descr => 'intervals overlap?',
2620  proname => 'overlaps', proisstrict => 'f', prorettype => 'bool',
2621  proargtypes => 'timestamptz timestamptz timestamptz timestamptz',
2622  prosrc => 'overlaps_timestamp' },
2623{ oid => '1305', descr => 'intervals overlap?',
2624  proname => 'overlaps', prolang => 'sql', proisstrict => 'f',
2625  provolatile => 's', prorettype => 'bool',
2626  proargtypes => 'timestamptz interval timestamptz interval',
2627  prosrc => 'select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))' },
2628{ oid => '1306', descr => 'intervals overlap?',
2629  proname => 'overlaps', prolang => 'sql', proisstrict => 'f',
2630  provolatile => 's', prorettype => 'bool',
2631  proargtypes => 'timestamptz timestamptz timestamptz interval',
2632  prosrc => 'select ($1, $2) overlaps ($3, ($3 + $4))' },
2633{ oid => '1307', descr => 'intervals overlap?',
2634  proname => 'overlaps', prolang => 'sql', proisstrict => 'f',
2635  provolatile => 's', prorettype => 'bool',
2636  proargtypes => 'timestamptz interval timestamptz timestamptz',
2637  prosrc => 'select ($1, ($1 + $2)) overlaps ($3, $4)' },
2638
2639{ oid => '1308', descr => 'intervals overlap?',
2640  proname => 'overlaps', proisstrict => 'f', prorettype => 'bool',
2641  proargtypes => 'time time time time', prosrc => 'overlaps_time' },
2642{ oid => '1309', descr => 'intervals overlap?',
2643  proname => 'overlaps', prolang => 'sql', proisstrict => 'f',
2644  prorettype => 'bool', proargtypes => 'time interval time interval',
2645  prosrc => 'select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))' },
2646{ oid => '1310', descr => 'intervals overlap?',
2647  proname => 'overlaps', prolang => 'sql', proisstrict => 'f',
2648  prorettype => 'bool', proargtypes => 'time time time interval',
2649  prosrc => 'select ($1, $2) overlaps ($3, ($3 + $4))' },
2650{ oid => '1311', descr => 'intervals overlap?',
2651  proname => 'overlaps', prolang => 'sql', proisstrict => 'f',
2652  prorettype => 'bool', proargtypes => 'time interval time time',
2653  prosrc => 'select ($1, ($1 + $2)) overlaps ($3, $4)' },
2654
2655{ oid => '1312', descr => 'I/O',
2656  proname => 'timestamp_in', provolatile => 's', prorettype => 'timestamp',
2657  proargtypes => 'cstring oid int4', prosrc => 'timestamp_in' },
2658{ oid => '1313', descr => 'I/O',
2659  proname => 'timestamp_out', provolatile => 's', prorettype => 'cstring',
2660  proargtypes => 'timestamp', prosrc => 'timestamp_out' },
2661{ oid => '2905', descr => 'I/O typmod',
2662  proname => 'timestamptypmodin', prorettype => 'int4',
2663  proargtypes => '_cstring', prosrc => 'timestamptypmodin' },
2664{ oid => '2906', descr => 'I/O typmod',
2665  proname => 'timestamptypmodout', prorettype => 'cstring',
2666  proargtypes => 'int4', prosrc => 'timestamptypmodout' },
2667{ oid => '1314', descr => 'less-equal-greater',
2668  proname => 'timestamptz_cmp', proleakproof => 't', prorettype => 'int4',
2669  proargtypes => 'timestamptz timestamptz', prosrc => 'timestamp_cmp' },
2670{ oid => '1315', descr => 'less-equal-greater',
2671  proname => 'interval_cmp', proleakproof => 't', prorettype => 'int4',
2672  proargtypes => 'interval interval', prosrc => 'interval_cmp' },
2673{ oid => '1316', descr => 'convert timestamp to time',
2674  proname => 'time', prorettype => 'time', proargtypes => 'timestamp',
2675  prosrc => 'timestamp_time' },
2676
2677{ oid => '1317', descr => 'length',
2678  proname => 'length', prorettype => 'int4', proargtypes => 'text',
2679  prosrc => 'textlen' },
2680{ oid => '1318', descr => 'character length',
2681  proname => 'length', prorettype => 'int4', proargtypes => 'bpchar',
2682  prosrc => 'bpcharlen' },
2683
2684{ oid => '1319',
2685  proname => 'xideqint4', proleakproof => 't', prorettype => 'bool',
2686  proargtypes => 'xid int4', prosrc => 'xideq' },
2687{ oid => '3309',
2688  proname => 'xidneqint4', proleakproof => 't', prorettype => 'bool',
2689  proargtypes => 'xid int4', prosrc => 'xidneq' },
2690
2691{ oid => '1326',
2692  proname => 'interval_div', prorettype => 'interval',
2693  proargtypes => 'interval float8', prosrc => 'interval_div' },
2694
2695{ oid => '1339', descr => 'base 10 logarithm',
2696  proname => 'dlog10', prorettype => 'float8', proargtypes => 'float8',
2697  prosrc => 'dlog10' },
2698{ oid => '1340', descr => 'base 10 logarithm',
2699  proname => 'log', prorettype => 'float8', proargtypes => 'float8',
2700  prosrc => 'dlog10' },
2701{ oid => '1194', descr => 'base 10 logarithm',
2702  proname => 'log10', prorettype => 'float8', proargtypes => 'float8',
2703  prosrc => 'dlog10' },
2704{ oid => '1341', descr => 'natural logarithm',
2705  proname => 'ln', prorettype => 'float8', proargtypes => 'float8',
2706  prosrc => 'dlog1' },
2707{ oid => '1342', descr => 'round to nearest integer',
2708  proname => 'round', prorettype => 'float8', proargtypes => 'float8',
2709  prosrc => 'dround' },
2710{ oid => '1343', descr => 'truncate to integer',
2711  proname => 'trunc', prorettype => 'float8', proargtypes => 'float8',
2712  prosrc => 'dtrunc' },
2713{ oid => '1344', descr => 'square root',
2714  proname => 'sqrt', prorettype => 'float8', proargtypes => 'float8',
2715  prosrc => 'dsqrt' },
2716{ oid => '1345', descr => 'cube root',
2717  proname => 'cbrt', prorettype => 'float8', proargtypes => 'float8',
2718  prosrc => 'dcbrt' },
2719{ oid => '1346', descr => 'exponentiation',
2720  proname => 'pow', prorettype => 'float8', proargtypes => 'float8 float8',
2721  prosrc => 'dpow' },
2722{ oid => '1368', descr => 'exponentiation',
2723  proname => 'power', prorettype => 'float8', proargtypes => 'float8 float8',
2724  prosrc => 'dpow' },
2725{ oid => '1347', descr => 'natural exponential (e^x)',
2726  proname => 'exp', prorettype => 'float8', proargtypes => 'float8',
2727  prosrc => 'dexp' },
2728
2729# This form of obj_description is now deprecated, since it will fail if
2730# OIDs are not unique across system catalogs.  Use the other form instead.
2731{ oid => '1348', descr => 'deprecated, use two-argument form instead',
2732  proname => 'obj_description', prolang => 'sql', procost => '100',
2733  provolatile => 's', prorettype => 'text', proargtypes => 'oid',
2734  prosrc => 'select description from pg_catalog.pg_description where objoid = $1 and objsubid = 0' },
2735
2736{ oid => '1349', descr => 'print type names of oidvector field',
2737  proname => 'oidvectortypes', provolatile => 's', prorettype => 'text',
2738  proargtypes => 'oidvector', prosrc => 'oidvectortypes' },
2739
2740{ oid => '1350', descr => 'I/O',
2741  proname => 'timetz_in', provolatile => 's', prorettype => 'timetz',
2742  proargtypes => 'cstring oid int4', prosrc => 'timetz_in' },
2743{ oid => '1351', descr => 'I/O',
2744  proname => 'timetz_out', prorettype => 'cstring', proargtypes => 'timetz',
2745  prosrc => 'timetz_out' },
2746{ oid => '2911', descr => 'I/O typmod',
2747  proname => 'timetztypmodin', prorettype => 'int4', proargtypes => '_cstring',
2748  prosrc => 'timetztypmodin' },
2749{ oid => '2912', descr => 'I/O typmod',
2750  proname => 'timetztypmodout', prorettype => 'cstring', proargtypes => 'int4',
2751  prosrc => 'timetztypmodout' },
2752{ oid => '1352',
2753  proname => 'timetz_eq', proleakproof => 't', prorettype => 'bool',
2754  proargtypes => 'timetz timetz', prosrc => 'timetz_eq' },
2755{ oid => '1353',
2756  proname => 'timetz_ne', proleakproof => 't', prorettype => 'bool',
2757  proargtypes => 'timetz timetz', prosrc => 'timetz_ne' },
2758{ oid => '1354',
2759  proname => 'timetz_lt', proleakproof => 't', prorettype => 'bool',
2760  proargtypes => 'timetz timetz', prosrc => 'timetz_lt' },
2761{ oid => '1355',
2762  proname => 'timetz_le', proleakproof => 't', prorettype => 'bool',
2763  proargtypes => 'timetz timetz', prosrc => 'timetz_le' },
2764{ oid => '1356',
2765  proname => 'timetz_ge', proleakproof => 't', prorettype => 'bool',
2766  proargtypes => 'timetz timetz', prosrc => 'timetz_ge' },
2767{ oid => '1357',
2768  proname => 'timetz_gt', proleakproof => 't', prorettype => 'bool',
2769  proargtypes => 'timetz timetz', prosrc => 'timetz_gt' },
2770{ oid => '1358', descr => 'less-equal-greater',
2771  proname => 'timetz_cmp', proleakproof => 't', prorettype => 'int4',
2772  proargtypes => 'timetz timetz', prosrc => 'timetz_cmp' },
2773{ oid => '1359',
2774  descr => 'convert date and time with time zone to timestamp with time zone',
2775  proname => 'timestamptz', prorettype => 'timestamptz',
2776  proargtypes => 'date timetz', prosrc => 'datetimetz_timestamptz' },
2777
2778{ oid => '1367', descr => 'character length',
2779  proname => 'character_length', prorettype => 'int4', proargtypes => 'bpchar',
2780  prosrc => 'bpcharlen' },
2781{ oid => '1369', descr => 'character length',
2782  proname => 'character_length', prorettype => 'int4', proargtypes => 'text',
2783  prosrc => 'textlen' },
2784
2785{ oid => '1370', descr => 'convert time to interval',
2786  proname => 'interval', prorettype => 'interval', proargtypes => 'time',
2787  prosrc => 'time_interval' },
2788{ oid => '1372', descr => 'character length',
2789  proname => 'char_length', prorettype => 'int4', proargtypes => 'bpchar',
2790  prosrc => 'bpcharlen' },
2791{ oid => '1374', descr => 'octet length',
2792  proname => 'octet_length', prorettype => 'int4', proargtypes => 'text',
2793  prosrc => 'textoctetlen' },
2794{ oid => '1375', descr => 'octet length',
2795  proname => 'octet_length', prorettype => 'int4', proargtypes => 'bpchar',
2796  prosrc => 'bpcharoctetlen' },
2797
2798{ oid => '1377', descr => 'larger of two',
2799  proname => 'time_larger', prorettype => 'time', proargtypes => 'time time',
2800  prosrc => 'time_larger' },
2801{ oid => '1378', descr => 'smaller of two',
2802  proname => 'time_smaller', prorettype => 'time', proargtypes => 'time time',
2803  prosrc => 'time_smaller' },
2804{ oid => '1379', descr => 'larger of two',
2805  proname => 'timetz_larger', prorettype => 'timetz',
2806  proargtypes => 'timetz timetz', prosrc => 'timetz_larger' },
2807{ oid => '1380', descr => 'smaller of two',
2808  proname => 'timetz_smaller', prorettype => 'timetz',
2809  proargtypes => 'timetz timetz', prosrc => 'timetz_smaller' },
2810
2811{ oid => '1381', descr => 'character length',
2812  proname => 'char_length', prorettype => 'int4', proargtypes => 'text',
2813  prosrc => 'textlen' },
2814
2815{ oid => '1384', descr => 'extract field from date',
2816  proname => 'date_part', prolang => 'sql', prorettype => 'float8',
2817  proargtypes => 'text date',
2818  prosrc => 'select pg_catalog.date_part($1, cast($2 as timestamp without time zone))' },
2819{ oid => '1385', descr => 'extract field from time',
2820  proname => 'date_part', prorettype => 'float8', proargtypes => 'text time',
2821  prosrc => 'time_part' },
2822{ oid => '1386',
2823  descr => 'date difference from today preserving months and years',
2824  proname => 'age', prolang => 'sql', provolatile => 's',
2825  prorettype => 'interval', proargtypes => 'timestamptz',
2826  prosrc => 'select pg_catalog.age(cast(current_date as timestamp with time zone), $1)' },
2827
2828{ oid => '1388',
2829  descr => 'convert timestamp with time zone to time with time zone',
2830  proname => 'timetz', provolatile => 's', prorettype => 'timetz',
2831  proargtypes => 'timestamptz', prosrc => 'timestamptz_timetz' },
2832
2833{ oid => '1373', descr => 'finite date?',
2834  proname => 'isfinite', prorettype => 'bool', proargtypes => 'date',
2835  prosrc => 'date_finite' },
2836{ oid => '1389', descr => 'finite timestamp?',
2837  proname => 'isfinite', prorettype => 'bool', proargtypes => 'timestamptz',
2838  prosrc => 'timestamp_finite' },
2839{ oid => '1390', descr => 'finite interval?',
2840  proname => 'isfinite', prorettype => 'bool', proargtypes => 'interval',
2841  prosrc => 'interval_finite' },
2842
2843{ oid => '1376', descr => 'factorial',
2844  proname => 'factorial', prorettype => 'numeric', proargtypes => 'int8',
2845  prosrc => 'numeric_fac' },
2846{ oid => '1394', descr => 'absolute value',
2847  proname => 'abs', prorettype => 'float4', proargtypes => 'float4',
2848  prosrc => 'float4abs' },
2849{ oid => '1395', descr => 'absolute value',
2850  proname => 'abs', prorettype => 'float8', proargtypes => 'float8',
2851  prosrc => 'float8abs' },
2852{ oid => '1396', descr => 'absolute value',
2853  proname => 'abs', prorettype => 'int8', proargtypes => 'int8',
2854  prosrc => 'int8abs' },
2855{ oid => '1397', descr => 'absolute value',
2856  proname => 'abs', prorettype => 'int4', proargtypes => 'int4',
2857  prosrc => 'int4abs' },
2858{ oid => '1398', descr => 'absolute value',
2859  proname => 'abs', prorettype => 'int2', proargtypes => 'int2',
2860  prosrc => 'int2abs' },
2861
2862# OIDS 1400 - 1499
2863
2864{ oid => '1400', descr => 'convert varchar to name',
2865  proname => 'name', prorettype => 'name', proargtypes => 'varchar',
2866  prosrc => 'text_name' },
2867{ oid => '1401', descr => 'convert name to varchar',
2868  proname => 'varchar', prorettype => 'varchar', proargtypes => 'name',
2869  prosrc => 'name_text' },
2870
2871{ oid => '1402', descr => 'current schema name',
2872  proname => 'current_schema', provolatile => 's', proparallel => 'u',
2873  prorettype => 'name', proargtypes => '', prosrc => 'current_schema' },
2874{ oid => '1403', descr => 'current schema search list',
2875  proname => 'current_schemas', provolatile => 's', proparallel => 'u',
2876  prorettype => '_name', proargtypes => 'bool', prosrc => 'current_schemas' },
2877
2878{ oid => '1404', descr => 'substitute portion of string',
2879  proname => 'overlay', prorettype => 'text',
2880  proargtypes => 'text text int4 int4', prosrc => 'textoverlay' },
2881{ oid => '1405', descr => 'substitute portion of string',
2882  proname => 'overlay', prorettype => 'text', proargtypes => 'text text int4',
2883  prosrc => 'textoverlay_no_len' },
2884
2885{ oid => '1406', descr => 'vertically aligned',
2886  proname => 'isvertical', prorettype => 'bool', proargtypes => 'point point',
2887  prosrc => 'point_vert' },
2888{ oid => '1407', descr => 'horizontally aligned',
2889  proname => 'ishorizontal', prorettype => 'bool', proargtypes => 'point point',
2890  prosrc => 'point_horiz' },
2891{ oid => '1408', descr => 'parallel',
2892  proname => 'isparallel', prorettype => 'bool', proargtypes => 'lseg lseg',
2893  prosrc => 'lseg_parallel' },
2894{ oid => '1409', descr => 'perpendicular',
2895  proname => 'isperp', prorettype => 'bool', proargtypes => 'lseg lseg',
2896  prosrc => 'lseg_perp' },
2897{ oid => '1410', descr => 'vertical',
2898  proname => 'isvertical', prorettype => 'bool', proargtypes => 'lseg',
2899  prosrc => 'lseg_vertical' },
2900{ oid => '1411', descr => 'horizontal',
2901  proname => 'ishorizontal', prorettype => 'bool', proargtypes => 'lseg',
2902  prosrc => 'lseg_horizontal' },
2903{ oid => '1412', descr => 'parallel',
2904  proname => 'isparallel', prorettype => 'bool', proargtypes => 'line line',
2905  prosrc => 'line_parallel' },
2906{ oid => '1413', descr => 'perpendicular',
2907  proname => 'isperp', prorettype => 'bool', proargtypes => 'line line',
2908  prosrc => 'line_perp' },
2909{ oid => '1414', descr => 'vertical',
2910  proname => 'isvertical', prorettype => 'bool', proargtypes => 'line',
2911  prosrc => 'line_vertical' },
2912{ oid => '1415', descr => 'horizontal',
2913  proname => 'ishorizontal', prorettype => 'bool', proargtypes => 'line',
2914  prosrc => 'line_horizontal' },
2915{ oid => '1416', descr => 'center of',
2916  proname => 'point', prorettype => 'point', proargtypes => 'circle',
2917  prosrc => 'circle_center' },
2918
2919{ oid => '1419', descr => 'convert interval to time',
2920  proname => 'time', prorettype => 'time', proargtypes => 'interval',
2921  prosrc => 'interval_time' },
2922
2923{ oid => '1421', descr => 'convert points to box',
2924  proname => 'box', prorettype => 'box', proargtypes => 'point point',
2925  prosrc => 'points_box' },
2926{ oid => '1422',
2927  proname => 'box_add', prorettype => 'box', proargtypes => 'box point',
2928  prosrc => 'box_add' },
2929{ oid => '1423',
2930  proname => 'box_sub', prorettype => 'box', proargtypes => 'box point',
2931  prosrc => 'box_sub' },
2932{ oid => '1424',
2933  proname => 'box_mul', prorettype => 'box', proargtypes => 'box point',
2934  prosrc => 'box_mul' },
2935{ oid => '1425',
2936  proname => 'box_div', prorettype => 'box', proargtypes => 'box point',
2937  prosrc => 'box_div' },
2938{ oid => '1426',
2939  proname => 'path_contain_pt', prolang => 'sql', prorettype => 'bool',
2940  proargtypes => 'path point', prosrc => 'select pg_catalog.on_ppath($2, $1)' },
2941{ oid => '1428',
2942  proname => 'poly_contain_pt', prorettype => 'bool',
2943  proargtypes => 'polygon point', prosrc => 'poly_contain_pt' },
2944{ oid => '1429',
2945  proname => 'pt_contained_poly', prorettype => 'bool',
2946  proargtypes => 'point polygon', prosrc => 'pt_contained_poly' },
2947
2948{ oid => '1430', descr => 'path closed?',
2949  proname => 'isclosed', prorettype => 'bool', proargtypes => 'path',
2950  prosrc => 'path_isclosed' },
2951{ oid => '1431', descr => 'path open?',
2952  proname => 'isopen', prorettype => 'bool', proargtypes => 'path',
2953  prosrc => 'path_isopen' },
2954{ oid => '1432',
2955  proname => 'path_npoints', prorettype => 'int4', proargtypes => 'path',
2956  prosrc => 'path_npoints' },
2957
2958# pclose and popen might better be named close and open, but that crashes initdb.
2959# - thomas 97/04/20
2960{ oid => '1433', descr => 'close path',
2961  proname => 'pclose', prorettype => 'path', proargtypes => 'path',
2962  prosrc => 'path_close' },
2963{ oid => '1434', descr => 'open path',
2964  proname => 'popen', prorettype => 'path', proargtypes => 'path',
2965  prosrc => 'path_open' },
2966
2967{ oid => '1435',
2968  proname => 'path_add', prorettype => 'path', proargtypes => 'path path',
2969  prosrc => 'path_add' },
2970{ oid => '1436',
2971  proname => 'path_add_pt', prorettype => 'path', proargtypes => 'path point',
2972  prosrc => 'path_add_pt' },
2973{ oid => '1437',
2974  proname => 'path_sub_pt', prorettype => 'path', proargtypes => 'path point',
2975  prosrc => 'path_sub_pt' },
2976{ oid => '1438',
2977  proname => 'path_mul_pt', prorettype => 'path', proargtypes => 'path point',
2978  prosrc => 'path_mul_pt' },
2979{ oid => '1439',
2980  proname => 'path_div_pt', prorettype => 'path', proargtypes => 'path point',
2981  prosrc => 'path_div_pt' },
2982
2983{ oid => '1440', descr => 'convert x, y to point',
2984  proname => 'point', prorettype => 'point', proargtypes => 'float8 float8',
2985  prosrc => 'construct_point' },
2986{ oid => '1441',
2987  proname => 'point_add', prorettype => 'point', proargtypes => 'point point',
2988  prosrc => 'point_add' },
2989{ oid => '1442',
2990  proname => 'point_sub', prorettype => 'point', proargtypes => 'point point',
2991  prosrc => 'point_sub' },
2992{ oid => '1443',
2993  proname => 'point_mul', prorettype => 'point', proargtypes => 'point point',
2994  prosrc => 'point_mul' },
2995{ oid => '1444',
2996  proname => 'point_div', prorettype => 'point', proargtypes => 'point point',
2997  prosrc => 'point_div' },
2998
2999{ oid => '1445',
3000  proname => 'poly_npoints', prorettype => 'int4', proargtypes => 'polygon',
3001  prosrc => 'poly_npoints' },
3002{ oid => '1446', descr => 'convert polygon to bounding box',
3003  proname => 'box', prorettype => 'box', proargtypes => 'polygon',
3004  prosrc => 'poly_box' },
3005{ oid => '1447', descr => 'convert polygon to path',
3006  proname => 'path', prorettype => 'path', proargtypes => 'polygon',
3007  prosrc => 'poly_path' },
3008{ oid => '1448', descr => 'convert box to polygon',
3009  proname => 'polygon', prorettype => 'polygon', proargtypes => 'box',
3010  prosrc => 'box_poly' },
3011{ oid => '1449', descr => 'convert path to polygon',
3012  proname => 'polygon', prorettype => 'polygon', proargtypes => 'path',
3013  prosrc => 'path_poly' },
3014
3015{ oid => '1450', descr => 'I/O',
3016  proname => 'circle_in', prorettype => 'circle', proargtypes => 'cstring',
3017  prosrc => 'circle_in' },
3018{ oid => '1451', descr => 'I/O',
3019  proname => 'circle_out', prorettype => 'cstring', proargtypes => 'circle',
3020  prosrc => 'circle_out' },
3021{ oid => '1452',
3022  proname => 'circle_same', prorettype => 'bool',
3023  proargtypes => 'circle circle', prosrc => 'circle_same' },
3024{ oid => '1453',
3025  proname => 'circle_contain', prorettype => 'bool',
3026  proargtypes => 'circle circle', prosrc => 'circle_contain' },
3027{ oid => '1454',
3028  proname => 'circle_left', prorettype => 'bool',
3029  proargtypes => 'circle circle', prosrc => 'circle_left' },
3030{ oid => '1455',
3031  proname => 'circle_overleft', prorettype => 'bool',
3032  proargtypes => 'circle circle', prosrc => 'circle_overleft' },
3033{ oid => '1456',
3034  proname => 'circle_overright', prorettype => 'bool',
3035  proargtypes => 'circle circle', prosrc => 'circle_overright' },
3036{ oid => '1457',
3037  proname => 'circle_right', prorettype => 'bool',
3038  proargtypes => 'circle circle', prosrc => 'circle_right' },
3039{ oid => '1458',
3040  proname => 'circle_contained', prorettype => 'bool',
3041  proargtypes => 'circle circle', prosrc => 'circle_contained' },
3042{ oid => '1459',
3043  proname => 'circle_overlap', prorettype => 'bool',
3044  proargtypes => 'circle circle', prosrc => 'circle_overlap' },
3045{ oid => '1460',
3046  proname => 'circle_below', prorettype => 'bool',
3047  proargtypes => 'circle circle', prosrc => 'circle_below' },
3048{ oid => '1461',
3049  proname => 'circle_above', prorettype => 'bool',
3050  proargtypes => 'circle circle', prosrc => 'circle_above' },
3051{ oid => '1462',
3052  proname => 'circle_eq', proleakproof => 't', prorettype => 'bool',
3053  proargtypes => 'circle circle', prosrc => 'circle_eq' },
3054{ oid => '1463',
3055  proname => 'circle_ne', proleakproof => 't', prorettype => 'bool',
3056  proargtypes => 'circle circle', prosrc => 'circle_ne' },
3057{ oid => '1464',
3058  proname => 'circle_lt', proleakproof => 't', prorettype => 'bool',
3059  proargtypes => 'circle circle', prosrc => 'circle_lt' },
3060{ oid => '1465',
3061  proname => 'circle_gt', proleakproof => 't', prorettype => 'bool',
3062  proargtypes => 'circle circle', prosrc => 'circle_gt' },
3063{ oid => '1466',
3064  proname => 'circle_le', proleakproof => 't', prorettype => 'bool',
3065  proargtypes => 'circle circle', prosrc => 'circle_le' },
3066{ oid => '1467',
3067  proname => 'circle_ge', proleakproof => 't', prorettype => 'bool',
3068  proargtypes => 'circle circle', prosrc => 'circle_ge' },
3069{ oid => '1468', descr => 'area of circle',
3070  proname => 'area', prorettype => 'float8', proargtypes => 'circle',
3071  prosrc => 'circle_area' },
3072{ oid => '1469', descr => 'diameter of circle',
3073  proname => 'diameter', prorettype => 'float8', proargtypes => 'circle',
3074  prosrc => 'circle_diameter' },
3075{ oid => '1470', descr => 'radius of circle',
3076  proname => 'radius', prorettype => 'float8', proargtypes => 'circle',
3077  prosrc => 'circle_radius' },
3078{ oid => '1471',
3079  proname => 'circle_distance', prorettype => 'float8',
3080  proargtypes => 'circle circle', prosrc => 'circle_distance' },
3081{ oid => '1472',
3082  proname => 'circle_center', prorettype => 'point', proargtypes => 'circle',
3083  prosrc => 'circle_center' },
3084{ oid => '1473', descr => 'convert point and radius to circle',
3085  proname => 'circle', prorettype => 'circle', proargtypes => 'point float8',
3086  prosrc => 'cr_circle' },
3087{ oid => '1474', descr => 'convert polygon to circle',
3088  proname => 'circle', prorettype => 'circle', proargtypes => 'polygon',
3089  prosrc => 'poly_circle' },
3090{ oid => '1475', descr => 'convert vertex count and circle to polygon',
3091  proname => 'polygon', prorettype => 'polygon', proargtypes => 'int4 circle',
3092  prosrc => 'circle_poly' },
3093{ oid => '1476',
3094  proname => 'dist_pc', prorettype => 'float8', proargtypes => 'point circle',
3095  prosrc => 'dist_pc' },
3096{ oid => '1477',
3097  proname => 'circle_contain_pt', prorettype => 'bool',
3098  proargtypes => 'circle point', prosrc => 'circle_contain_pt' },
3099{ oid => '1478',
3100  proname => 'pt_contained_circle', prorettype => 'bool',
3101  proargtypes => 'point circle', prosrc => 'pt_contained_circle' },
3102{ oid => '4091', descr => 'convert point to empty box',
3103  proname => 'box', prorettype => 'box', proargtypes => 'point',
3104  prosrc => 'point_box' },
3105{ oid => '1479', descr => 'convert box to circle',
3106  proname => 'circle', prorettype => 'circle', proargtypes => 'box',
3107  prosrc => 'box_circle' },
3108{ oid => '1480', descr => 'convert circle to box',
3109  proname => 'box', prorettype => 'box', proargtypes => 'circle',
3110  prosrc => 'circle_box' },
3111
3112{ oid => '1482',
3113  proname => 'lseg_ne', proleakproof => 't', prorettype => 'bool',
3114  proargtypes => 'lseg lseg', prosrc => 'lseg_ne' },
3115{ oid => '1483',
3116  proname => 'lseg_lt', proleakproof => 't', prorettype => 'bool',
3117  proargtypes => 'lseg lseg', prosrc => 'lseg_lt' },
3118{ oid => '1484',
3119  proname => 'lseg_le', proleakproof => 't', prorettype => 'bool',
3120  proargtypes => 'lseg lseg', prosrc => 'lseg_le' },
3121{ oid => '1485',
3122  proname => 'lseg_gt', proleakproof => 't', prorettype => 'bool',
3123  proargtypes => 'lseg lseg', prosrc => 'lseg_gt' },
3124{ oid => '1486',
3125  proname => 'lseg_ge', proleakproof => 't', prorettype => 'bool',
3126  proargtypes => 'lseg lseg', prosrc => 'lseg_ge' },
3127{ oid => '1487',
3128  proname => 'lseg_length', prorettype => 'float8', proargtypes => 'lseg',
3129  prosrc => 'lseg_length' },
3130{ oid => '1488',
3131  proname => 'close_ls', prorettype => 'point', proargtypes => 'line lseg',
3132  prosrc => 'close_ls' },
3133{ oid => '1489',
3134  proname => 'close_lseg', prorettype => 'point', proargtypes => 'lseg lseg',
3135  prosrc => 'close_lseg' },
3136
3137{ oid => '1490', descr => 'I/O',
3138  proname => 'line_in', prorettype => 'line', proargtypes => 'cstring',
3139  prosrc => 'line_in' },
3140{ oid => '1491', descr => 'I/O',
3141  proname => 'line_out', prorettype => 'cstring', proargtypes => 'line',
3142  prosrc => 'line_out' },
3143{ oid => '1492',
3144  proname => 'line_eq', prorettype => 'bool', proargtypes => 'line line',
3145  prosrc => 'line_eq' },
3146{ oid => '1493', descr => 'construct line from points',
3147  proname => 'line', prorettype => 'line', proargtypes => 'point point',
3148  prosrc => 'line_construct_pp' },
3149{ oid => '1494',
3150  proname => 'line_interpt', prorettype => 'point', proargtypes => 'line line',
3151  prosrc => 'line_interpt' },
3152{ oid => '1495',
3153  proname => 'line_intersect', prorettype => 'bool', proargtypes => 'line line',
3154  prosrc => 'line_intersect' },
3155{ oid => '1496',
3156  proname => 'line_parallel', prorettype => 'bool', proargtypes => 'line line',
3157  prosrc => 'line_parallel' },
3158{ oid => '1497',
3159  proname => 'line_perp', prorettype => 'bool', proargtypes => 'line line',
3160  prosrc => 'line_perp' },
3161{ oid => '1498',
3162  proname => 'line_vertical', prorettype => 'bool', proargtypes => 'line',
3163  prosrc => 'line_vertical' },
3164{ oid => '1499',
3165  proname => 'line_horizontal', prorettype => 'bool', proargtypes => 'line',
3166  prosrc => 'line_horizontal' },
3167
3168# OIDS 1500 - 1599
3169
3170{ oid => '1530', descr => 'distance between endpoints',
3171  proname => 'length', prorettype => 'float8', proargtypes => 'lseg',
3172  prosrc => 'lseg_length' },
3173{ oid => '1531', descr => 'sum of path segments',
3174  proname => 'length', prorettype => 'float8', proargtypes => 'path',
3175  prosrc => 'path_length' },
3176
3177{ oid => '1532', descr => 'center of',
3178  proname => 'point', prorettype => 'point', proargtypes => 'lseg',
3179  prosrc => 'lseg_center' },
3180{ oid => '1533', descr => 'center of',
3181  proname => 'point', prorettype => 'point', proargtypes => 'path',
3182  prosrc => 'path_center' },
3183{ oid => '1534', descr => 'center of',
3184  proname => 'point', prorettype => 'point', proargtypes => 'box',
3185  prosrc => 'box_center' },
3186{ oid => '1540', descr => 'center of',
3187  proname => 'point', prorettype => 'point', proargtypes => 'polygon',
3188  prosrc => 'poly_center' },
3189{ oid => '1541', descr => 'diagonal of',
3190  proname => 'lseg', prorettype => 'lseg', proargtypes => 'box',
3191  prosrc => 'box_diagonal' },
3192{ oid => '1542', descr => 'center of',
3193  proname => 'center', prorettype => 'point', proargtypes => 'box',
3194  prosrc => 'box_center' },
3195{ oid => '1543', descr => 'center of',
3196  proname => 'center', prorettype => 'point', proargtypes => 'circle',
3197  prosrc => 'circle_center' },
3198{ oid => '1544', descr => 'convert circle to 12-vertex polygon',
3199  proname => 'polygon', prolang => 'sql', prorettype => 'polygon',
3200  proargtypes => 'circle', prosrc => 'select pg_catalog.polygon(12, $1)' },
3201{ oid => '1545', descr => 'number of points',
3202  proname => 'npoints', prorettype => 'int4', proargtypes => 'path',
3203  prosrc => 'path_npoints' },
3204{ oid => '1556', descr => 'number of points',
3205  proname => 'npoints', prorettype => 'int4', proargtypes => 'polygon',
3206  prosrc => 'poly_npoints' },
3207
3208{ oid => '1564', descr => 'I/O',
3209  proname => 'bit_in', prorettype => 'bit', proargtypes => 'cstring oid int4',
3210  prosrc => 'bit_in' },
3211{ oid => '1565', descr => 'I/O',
3212  proname => 'bit_out', prorettype => 'cstring', proargtypes => 'bit',
3213  prosrc => 'bit_out' },
3214{ oid => '2919', descr => 'I/O typmod',
3215  proname => 'bittypmodin', prorettype => 'int4', proargtypes => '_cstring',
3216  prosrc => 'bittypmodin' },
3217{ oid => '2920', descr => 'I/O typmod',
3218  proname => 'bittypmodout', prorettype => 'cstring', proargtypes => 'int4',
3219  prosrc => 'bittypmodout' },
3220
3221{ oid => '1569', descr => 'matches LIKE expression',
3222  proname => 'like', prosupport => 'textlike_support', prorettype => 'bool',
3223  proargtypes => 'text text', prosrc => 'textlike' },
3224{ oid => '1570', descr => 'does not match LIKE expression',
3225  proname => 'notlike', prorettype => 'bool', proargtypes => 'text text',
3226  prosrc => 'textnlike' },
3227{ oid => '1571', descr => 'matches LIKE expression',
3228  proname => 'like', prosupport => 'textlike_support', prorettype => 'bool',
3229  proargtypes => 'name text', prosrc => 'namelike' },
3230{ oid => '1572', descr => 'does not match LIKE expression',
3231  proname => 'notlike', prorettype => 'bool', proargtypes => 'name text',
3232  prosrc => 'namenlike' },
3233
3234# SEQUENCE functions
3235{ oid => '1574', descr => 'sequence next value',
3236  proname => 'nextval', provolatile => 'v', proparallel => 'u',
3237  prorettype => 'int8', proargtypes => 'regclass', prosrc => 'nextval_oid' },
3238{ oid => '1575', descr => 'sequence current value',
3239  proname => 'currval', provolatile => 'v', proparallel => 'u',
3240  prorettype => 'int8', proargtypes => 'regclass', prosrc => 'currval_oid' },
3241{ oid => '1576', descr => 'set sequence value',
3242  proname => 'setval', provolatile => 'v', proparallel => 'u',
3243  prorettype => 'int8', proargtypes => 'regclass int8',
3244  prosrc => 'setval_oid' },
3245{ oid => '1765', descr => 'set sequence value and is_called status',
3246  proname => 'setval', provolatile => 'v', proparallel => 'u',
3247  prorettype => 'int8', proargtypes => 'regclass int8 bool',
3248  prosrc => 'setval3_oid' },
3249{ oid => '3078',
3250  descr => 'sequence parameters, for use by information schema',
3251  proname => 'pg_sequence_parameters', provolatile => 's',
3252  prorettype => 'record', proargtypes => 'oid',
3253  proallargtypes => '{oid,int8,int8,int8,int8,bool,int8,oid}',
3254  proargmodes => '{i,o,o,o,o,o,o,o}',
3255  proargnames => '{sequence_oid,start_value,minimum_value,maximum_value,increment,cycle_option,cache_size,data_type}',
3256  prosrc => 'pg_sequence_parameters' },
3257{ oid => '4032', descr => 'sequence last value',
3258  proname => 'pg_sequence_last_value', provolatile => 'v', proparallel => 'u',
3259  prorettype => 'int8', proargtypes => 'regclass',
3260  prosrc => 'pg_sequence_last_value' },
3261
3262{ oid => '275', descr => 'return the next oid for a system table',
3263  proname => 'pg_nextoid', provolatile => 'v', proparallel => 'u',
3264  prorettype => 'oid', proargtypes => 'regclass name regclass',
3265  prosrc => 'pg_nextoid' },
3266
3267{ oid => '1579', descr => 'I/O',
3268  proname => 'varbit_in', prorettype => 'varbit',
3269  proargtypes => 'cstring oid int4', prosrc => 'varbit_in' },
3270{ oid => '1580', descr => 'I/O',
3271  proname => 'varbit_out', prorettype => 'cstring', proargtypes => 'varbit',
3272  prosrc => 'varbit_out' },
3273{ oid => '2902', descr => 'I/O typmod',
3274  proname => 'varbittypmodin', prorettype => 'int4', proargtypes => '_cstring',
3275  prosrc => 'varbittypmodin' },
3276{ oid => '2921', descr => 'I/O typmod',
3277  proname => 'varbittypmodout', prorettype => 'cstring', proargtypes => 'int4',
3278  prosrc => 'varbittypmodout' },
3279
3280{ oid => '1581',
3281  proname => 'biteq', proleakproof => 't', prorettype => 'bool',
3282  proargtypes => 'bit bit', prosrc => 'biteq' },
3283{ oid => '1582',
3284  proname => 'bitne', proleakproof => 't', prorettype => 'bool',
3285  proargtypes => 'bit bit', prosrc => 'bitne' },
3286{ oid => '1592',
3287  proname => 'bitge', proleakproof => 't', prorettype => 'bool',
3288  proargtypes => 'bit bit', prosrc => 'bitge' },
3289{ oid => '1593',
3290  proname => 'bitgt', proleakproof => 't', prorettype => 'bool',
3291  proargtypes => 'bit bit', prosrc => 'bitgt' },
3292{ oid => '1594',
3293  proname => 'bitle', proleakproof => 't', prorettype => 'bool',
3294  proargtypes => 'bit bit', prosrc => 'bitle' },
3295{ oid => '1595',
3296  proname => 'bitlt', proleakproof => 't', prorettype => 'bool',
3297  proargtypes => 'bit bit', prosrc => 'bitlt' },
3298{ oid => '1596', descr => 'less-equal-greater',
3299  proname => 'bitcmp', proleakproof => 't', prorettype => 'int4',
3300  proargtypes => 'bit bit', prosrc => 'bitcmp' },
3301
3302{ oid => '1598', descr => 'random value',
3303  proname => 'random', provolatile => 'v', proparallel => 'r',
3304  prorettype => 'float8', proargtypes => '', prosrc => 'drandom' },
3305{ oid => '1599', descr => 'set random seed',
3306  proname => 'setseed', provolatile => 'v', proparallel => 'r',
3307  prorettype => 'void', proargtypes => 'float8', prosrc => 'setseed' },
3308
3309# OIDS 1600 - 1699
3310
3311{ oid => '1600', descr => 'arcsine',
3312  proname => 'asin', prorettype => 'float8', proargtypes => 'float8',
3313  prosrc => 'dasin' },
3314{ oid => '1601', descr => 'arccosine',
3315  proname => 'acos', prorettype => 'float8', proargtypes => 'float8',
3316  prosrc => 'dacos' },
3317{ oid => '1602', descr => 'arctangent',
3318  proname => 'atan', prorettype => 'float8', proargtypes => 'float8',
3319  prosrc => 'datan' },
3320{ oid => '1603', descr => 'arctangent, two arguments',
3321  proname => 'atan2', prorettype => 'float8', proargtypes => 'float8 float8',
3322  prosrc => 'datan2' },
3323{ oid => '1604', descr => 'sine',
3324  proname => 'sin', prorettype => 'float8', proargtypes => 'float8',
3325  prosrc => 'dsin' },
3326{ oid => '1605', descr => 'cosine',
3327  proname => 'cos', prorettype => 'float8', proargtypes => 'float8',
3328  prosrc => 'dcos' },
3329{ oid => '1606', descr => 'tangent',
3330  proname => 'tan', prorettype => 'float8', proargtypes => 'float8',
3331  prosrc => 'dtan' },
3332{ oid => '1607', descr => 'cotangent',
3333  proname => 'cot', prorettype => 'float8', proargtypes => 'float8',
3334  prosrc => 'dcot' },
3335
3336{ oid => '2731', descr => 'arcsine, degrees',
3337  proname => 'asind', prorettype => 'float8', proargtypes => 'float8',
3338  prosrc => 'dasind' },
3339{ oid => '2732', descr => 'arccosine, degrees',
3340  proname => 'acosd', prorettype => 'float8', proargtypes => 'float8',
3341  prosrc => 'dacosd' },
3342{ oid => '2733', descr => 'arctangent, degrees',
3343  proname => 'atand', prorettype => 'float8', proargtypes => 'float8',
3344  prosrc => 'datand' },
3345{ oid => '2734', descr => 'arctangent, two arguments, degrees',
3346  proname => 'atan2d', prorettype => 'float8', proargtypes => 'float8 float8',
3347  prosrc => 'datan2d' },
3348{ oid => '2735', descr => 'sine, degrees',
3349  proname => 'sind', prorettype => 'float8', proargtypes => 'float8',
3350  prosrc => 'dsind' },
3351{ oid => '2736', descr => 'cosine, degrees',
3352  proname => 'cosd', prorettype => 'float8', proargtypes => 'float8',
3353  prosrc => 'dcosd' },
3354{ oid => '2737', descr => 'tangent, degrees',
3355  proname => 'tand', prorettype => 'float8', proargtypes => 'float8',
3356  prosrc => 'dtand' },
3357{ oid => '2738', descr => 'cotangent, degrees',
3358  proname => 'cotd', prorettype => 'float8', proargtypes => 'float8',
3359  prosrc => 'dcotd' },
3360
3361{ oid => '1608', descr => 'radians to degrees',
3362  proname => 'degrees', prorettype => 'float8', proargtypes => 'float8',
3363  prosrc => 'degrees' },
3364{ oid => '1609', descr => 'degrees to radians',
3365  proname => 'radians', prorettype => 'float8', proargtypes => 'float8',
3366  prosrc => 'radians' },
3367{ oid => '1610', descr => 'PI',
3368  proname => 'pi', prorettype => 'float8', proargtypes => '', prosrc => 'dpi' },
3369
3370{ oid => '2462', descr => 'hyperbolic sine',
3371  proname => 'sinh', prorettype => 'float8', proargtypes => 'float8',
3372  prosrc => 'dsinh' },
3373{ oid => '2463', descr => 'hyperbolic cosine',
3374  proname => 'cosh', prorettype => 'float8', proargtypes => 'float8',
3375  prosrc => 'dcosh' },
3376{ oid => '2464', descr => 'hyperbolic tangent',
3377  proname => 'tanh', prorettype => 'float8', proargtypes => 'float8',
3378  prosrc => 'dtanh' },
3379{ oid => '2465', descr => 'inverse hyperbolic sine',
3380  proname => 'asinh', prorettype => 'float8', proargtypes => 'float8',
3381  prosrc => 'dasinh' },
3382{ oid => '2466', descr => 'inverse hyperbolic cosine',
3383  proname => 'acosh', prorettype => 'float8', proargtypes => 'float8',
3384  prosrc => 'dacosh' },
3385{ oid => '2467', descr => 'inverse hyperbolic tangent',
3386  proname => 'atanh', prorettype => 'float8', proargtypes => 'float8',
3387  prosrc => 'datanh' },
3388
3389{ oid => '1618',
3390  proname => 'interval_mul', prorettype => 'interval',
3391  proargtypes => 'interval float8', prosrc => 'interval_mul' },
3392
3393{ oid => '1620', descr => 'convert first char to int4',
3394  proname => 'ascii', prorettype => 'int4', proargtypes => 'text',
3395  prosrc => 'ascii' },
3396{ oid => '1621', descr => 'convert int4 to char',
3397  proname => 'chr', prorettype => 'text', proargtypes => 'int4',
3398  prosrc => 'chr' },
3399{ oid => '1622', descr => 'replicate string n times',
3400  proname => 'repeat', prorettype => 'text', proargtypes => 'text int4',
3401  prosrc => 'repeat' },
3402
3403{ oid => '1623', descr => 'convert SQL regexp pattern to POSIX style',
3404  proname => 'similar_escape', proisstrict => 'f', prorettype => 'text',
3405  proargtypes => 'text text', prosrc => 'similar_escape' },
3406{ oid => '1986', descr => 'convert SQL regexp pattern to POSIX style',
3407  proname => 'similar_to_escape', prorettype => 'text',
3408  proargtypes => 'text text', prosrc => 'similar_to_escape_2' },
3409{ oid => '1987', descr => 'convert SQL regexp pattern to POSIX style',
3410  proname => 'similar_to_escape', prorettype => 'text', proargtypes => 'text',
3411  prosrc => 'similar_to_escape_1' },
3412
3413{ oid => '1624',
3414  proname => 'mul_d_interval', prorettype => 'interval',
3415  proargtypes => 'float8 interval', prosrc => 'mul_d_interval' },
3416
3417{ oid => '1631',
3418  proname => 'bpcharlike', prosupport => 'textlike_support',
3419  prorettype => 'bool', proargtypes => 'bpchar text', prosrc => 'textlike' },
3420{ oid => '1632',
3421  proname => 'bpcharnlike', prorettype => 'bool', proargtypes => 'bpchar text',
3422  prosrc => 'textnlike' },
3423
3424{ oid => '1633',
3425  proname => 'texticlike', prosupport => 'texticlike_support',
3426  prorettype => 'bool', proargtypes => 'text text', prosrc => 'texticlike' },
3427{ oid => '1025', descr => 'planner support for texticlike',
3428  proname => 'texticlike_support', prorettype => 'internal',
3429  proargtypes => 'internal', prosrc => 'texticlike_support' },
3430{ oid => '1634',
3431  proname => 'texticnlike', prorettype => 'bool', proargtypes => 'text text',
3432  prosrc => 'texticnlike' },
3433{ oid => '1635',
3434  proname => 'nameiclike', prosupport => 'texticlike_support',
3435  prorettype => 'bool', proargtypes => 'name text', prosrc => 'nameiclike' },
3436{ oid => '1636',
3437  proname => 'nameicnlike', prorettype => 'bool', proargtypes => 'name text',
3438  prosrc => 'nameicnlike' },
3439{ oid => '1637', descr => 'convert LIKE pattern to use backslash escapes',
3440  proname => 'like_escape', prorettype => 'text', proargtypes => 'text text',
3441  prosrc => 'like_escape' },
3442
3443{ oid => '1656',
3444  proname => 'bpcharicregexeq', prosupport => 'texticregexeq_support',
3445  prorettype => 'bool', proargtypes => 'bpchar text',
3446  prosrc => 'texticregexeq' },
3447{ oid => '1657',
3448  proname => 'bpcharicregexne', prorettype => 'bool',
3449  proargtypes => 'bpchar text', prosrc => 'texticregexne' },
3450{ oid => '1658',
3451  proname => 'bpcharregexeq', prosupport => 'textregexeq_support',
3452  prorettype => 'bool', proargtypes => 'bpchar text', prosrc => 'textregexeq' },
3453{ oid => '1659',
3454  proname => 'bpcharregexne', prorettype => 'bool',
3455  proargtypes => 'bpchar text', prosrc => 'textregexne' },
3456{ oid => '1660',
3457  proname => 'bpchariclike', prosupport => 'texticlike_support',
3458  prorettype => 'bool', proargtypes => 'bpchar text', prosrc => 'texticlike' },
3459{ oid => '1661',
3460  proname => 'bpcharicnlike', prorettype => 'bool',
3461  proargtypes => 'bpchar text', prosrc => 'texticnlike' },
3462
3463# Oracle Compatibility Related Functions - By Edmund Mergl <E.Mergl@bawue.de>
3464{ oid => '868', descr => 'position of substring',
3465  proname => 'strpos', prorettype => 'int4', proargtypes => 'text text',
3466  prosrc => 'textpos' },
3467{ oid => '870', descr => 'lowercase',
3468  proname => 'lower', prorettype => 'text', proargtypes => 'text',
3469  prosrc => 'lower' },
3470{ oid => '871', descr => 'uppercase',
3471  proname => 'upper', prorettype => 'text', proargtypes => 'text',
3472  prosrc => 'upper' },
3473{ oid => '872', descr => 'capitalize each word',
3474  proname => 'initcap', prorettype => 'text', proargtypes => 'text',
3475  prosrc => 'initcap' },
3476{ oid => '873', descr => 'left-pad string to length',
3477  proname => 'lpad', prorettype => 'text', proargtypes => 'text int4 text',
3478  prosrc => 'lpad' },
3479{ oid => '874', descr => 'right-pad string to length',
3480  proname => 'rpad', prorettype => 'text', proargtypes => 'text int4 text',
3481  prosrc => 'rpad' },
3482{ oid => '875', descr => 'trim selected characters from left end of string',
3483  proname => 'ltrim', prorettype => 'text', proargtypes => 'text text',
3484  prosrc => 'ltrim' },
3485{ oid => '876', descr => 'trim selected characters from right end of string',
3486  proname => 'rtrim', prorettype => 'text', proargtypes => 'text text',
3487  prosrc => 'rtrim' },
3488{ oid => '877', descr => 'extract portion of string',
3489  proname => 'substr', prorettype => 'text', proargtypes => 'text int4 int4',
3490  prosrc => 'text_substr' },
3491{ oid => '878', descr => 'map a set of characters appearing in string',
3492  proname => 'translate', prorettype => 'text', proargtypes => 'text text text',
3493  prosrc => 'translate' },
3494{ oid => '879', descr => 'left-pad string to length',
3495  proname => 'lpad', prolang => 'sql', prorettype => 'text',
3496  proargtypes => 'text int4',
3497  prosrc => 'select pg_catalog.lpad($1, $2, \' \')' },
3498{ oid => '880', descr => 'right-pad string to length',
3499  proname => 'rpad', prolang => 'sql', prorettype => 'text',
3500  proargtypes => 'text int4',
3501  prosrc => 'select pg_catalog.rpad($1, $2, \' \')' },
3502{ oid => '881', descr => 'trim spaces from left end of string',
3503  proname => 'ltrim', prorettype => 'text', proargtypes => 'text',
3504  prosrc => 'ltrim1' },
3505{ oid => '882', descr => 'trim spaces from right end of string',
3506  proname => 'rtrim', prorettype => 'text', proargtypes => 'text',
3507  prosrc => 'rtrim1' },
3508{ oid => '883', descr => 'extract portion of string',
3509  proname => 'substr', prorettype => 'text', proargtypes => 'text int4',
3510  prosrc => 'text_substr_no_len' },
3511{ oid => '884', descr => 'trim selected characters from both ends of string',
3512  proname => 'btrim', prorettype => 'text', proargtypes => 'text text',
3513  prosrc => 'btrim' },
3514{ oid => '885', descr => 'trim spaces from both ends of string',
3515  proname => 'btrim', prorettype => 'text', proargtypes => 'text',
3516  prosrc => 'btrim1' },
3517
3518{ oid => '936', descr => 'extract portion of string',
3519  proname => 'substring', prorettype => 'text', proargtypes => 'text int4 int4',
3520  prosrc => 'text_substr' },
3521{ oid => '937', descr => 'extract portion of string',
3522  proname => 'substring', prorettype => 'text', proargtypes => 'text int4',
3523  prosrc => 'text_substr_no_len' },
3524{ oid => '2087',
3525  descr => 'replace all occurrences in string of old_substr with new_substr',
3526  proname => 'replace', prorettype => 'text', proargtypes => 'text text text',
3527  prosrc => 'replace_text' },
3528{ oid => '2284', descr => 'replace text using regexp',
3529  proname => 'regexp_replace', prorettype => 'text',
3530  proargtypes => 'text text text', prosrc => 'textregexreplace_noopt' },
3531{ oid => '2285', descr => 'replace text using regexp',
3532  proname => 'regexp_replace', prorettype => 'text',
3533  proargtypes => 'text text text text', prosrc => 'textregexreplace' },
3534{ oid => '3396', descr => 'find first match for regexp',
3535  proname => 'regexp_match', prorettype => '_text', proargtypes => 'text text',
3536  prosrc => 'regexp_match_no_flags' },
3537{ oid => '3397', descr => 'find first match for regexp',
3538  proname => 'regexp_match', prorettype => '_text',
3539  proargtypes => 'text text text', prosrc => 'regexp_match' },
3540{ oid => '2763', descr => 'find match(es) for regexp',
3541  proname => 'regexp_matches', prorows => '1', proretset => 't',
3542  prorettype => '_text', proargtypes => 'text text',
3543  prosrc => 'regexp_matches_no_flags' },
3544{ oid => '2764', descr => 'find match(es) for regexp',
3545  proname => 'regexp_matches', prorows => '10', proretset => 't',
3546  prorettype => '_text', proargtypes => 'text text text',
3547  prosrc => 'regexp_matches' },
3548{ oid => '2088', descr => 'split string by field_sep and return field_num',
3549  proname => 'split_part', prorettype => 'text',
3550  proargtypes => 'text text int4', prosrc => 'split_text' },
3551{ oid => '2765', descr => 'split string by pattern',
3552  proname => 'regexp_split_to_table', prorows => '1000', proretset => 't',
3553  prorettype => 'text', proargtypes => 'text text',
3554  prosrc => 'regexp_split_to_table_no_flags' },
3555{ oid => '2766', descr => 'split string by pattern',
3556  proname => 'regexp_split_to_table', prorows => '1000', proretset => 't',
3557  prorettype => 'text', proargtypes => 'text text text',
3558  prosrc => 'regexp_split_to_table' },
3559{ oid => '2767', descr => 'split string by pattern',
3560  proname => 'regexp_split_to_array', prorettype => '_text',
3561  proargtypes => 'text text', prosrc => 'regexp_split_to_array_no_flags' },
3562{ oid => '2768', descr => 'split string by pattern',
3563  proname => 'regexp_split_to_array', prorettype => '_text',
3564  proargtypes => 'text text text', prosrc => 'regexp_split_to_array' },
3565{ oid => '2089', descr => 'convert int4 number to hex',
3566  proname => 'to_hex', prorettype => 'text', proargtypes => 'int4',
3567  prosrc => 'to_hex32' },
3568{ oid => '2090', descr => 'convert int8 number to hex',
3569  proname => 'to_hex', prorettype => 'text', proargtypes => 'int8',
3570  prosrc => 'to_hex64' },
3571
3572# for character set encoding support
3573
3574# return database encoding name
3575{ oid => '1039', descr => 'encoding name of current database',
3576  proname => 'getdatabaseencoding', provolatile => 's', prorettype => 'name',
3577  proargtypes => '', prosrc => 'getdatabaseencoding' },
3578
3579# return client encoding name i.e. session encoding
3580{ oid => '810', descr => 'encoding name of current database',
3581  proname => 'pg_client_encoding', provolatile => 's', prorettype => 'name',
3582  proargtypes => '', prosrc => 'pg_client_encoding' },
3583
3584{ oid => '1713', descr => 'length of string in specified encoding',
3585  proname => 'length', provolatile => 's', prorettype => 'int4',
3586  proargtypes => 'bytea name', prosrc => 'length_in_encoding' },
3587
3588{ oid => '1714',
3589  descr => 'convert string with specified source encoding name',
3590  proname => 'convert_from', provolatile => 's', prorettype => 'text',
3591  proargtypes => 'bytea name', prosrc => 'pg_convert_from' },
3592
3593{ oid => '1717',
3594  descr => 'convert string with specified destination encoding name',
3595  proname => 'convert_to', provolatile => 's', prorettype => 'bytea',
3596  proargtypes => 'text name', prosrc => 'pg_convert_to' },
3597
3598{ oid => '1813', descr => 'convert string with specified encoding names',
3599  proname => 'convert', provolatile => 's', prorettype => 'bytea',
3600  proargtypes => 'bytea name name', prosrc => 'pg_convert' },
3601
3602{ oid => '1264', descr => 'convert encoding name to encoding id',
3603  proname => 'pg_char_to_encoding', provolatile => 's', prorettype => 'int4',
3604  proargtypes => 'name', prosrc => 'PG_char_to_encoding' },
3605
3606{ oid => '1597', descr => 'convert encoding id to encoding name',
3607  proname => 'pg_encoding_to_char', provolatile => 's', prorettype => 'name',
3608  proargtypes => 'int4', prosrc => 'PG_encoding_to_char' },
3609
3610{ oid => '2319',
3611  descr => 'maximum octet length of a character in given encoding',
3612  proname => 'pg_encoding_max_length', prorettype => 'int4',
3613  proargtypes => 'int4', prosrc => 'pg_encoding_max_length_sql' },
3614
3615{ oid => '1638',
3616  proname => 'oidgt', proleakproof => 't', prorettype => 'bool',
3617  proargtypes => 'oid oid', prosrc => 'oidgt' },
3618{ oid => '1639',
3619  proname => 'oidge', proleakproof => 't', prorettype => 'bool',
3620  proargtypes => 'oid oid', prosrc => 'oidge' },
3621
3622# System-view support functions
3623{ oid => '1573', descr => 'source text of a rule',
3624  proname => 'pg_get_ruledef', provolatile => 's', prorettype => 'text',
3625  proargtypes => 'oid', prosrc => 'pg_get_ruledef' },
3626{ oid => '1640', descr => 'select statement of a view',
3627  proname => 'pg_get_viewdef', provolatile => 's', proparallel => 'r',
3628  prorettype => 'text', proargtypes => 'text',
3629  prosrc => 'pg_get_viewdef_name' },
3630{ oid => '1641', descr => 'select statement of a view',
3631  proname => 'pg_get_viewdef', provolatile => 's', proparallel => 'r',
3632  prorettype => 'text', proargtypes => 'oid', prosrc => 'pg_get_viewdef' },
3633{ oid => '1642', descr => 'role name by OID (with fallback)',
3634  proname => 'pg_get_userbyid', provolatile => 's', prorettype => 'name',
3635  proargtypes => 'oid', prosrc => 'pg_get_userbyid' },
3636{ oid => '1643', descr => 'index description',
3637  proname => 'pg_get_indexdef', provolatile => 's', prorettype => 'text',
3638  proargtypes => 'oid', prosrc => 'pg_get_indexdef' },
3639{ oid => '3415', descr => 'extended statistics object description',
3640  proname => 'pg_get_statisticsobjdef', provolatile => 's',
3641  prorettype => 'text', proargtypes => 'oid',
3642  prosrc => 'pg_get_statisticsobjdef' },
3643{ oid => '3352', descr => 'partition key description',
3644  proname => 'pg_get_partkeydef', provolatile => 's', prorettype => 'text',
3645  proargtypes => 'oid', prosrc => 'pg_get_partkeydef' },
3646{ oid => '3408', descr => 'partition constraint description',
3647  proname => 'pg_get_partition_constraintdef', provolatile => 's',
3648  prorettype => 'text', proargtypes => 'oid',
3649  prosrc => 'pg_get_partition_constraintdef' },
3650{ oid => '1662', descr => 'trigger description',
3651  proname => 'pg_get_triggerdef', provolatile => 's', prorettype => 'text',
3652  proargtypes => 'oid', prosrc => 'pg_get_triggerdef' },
3653{ oid => '1387', descr => 'constraint description',
3654  proname => 'pg_get_constraintdef', provolatile => 's', prorettype => 'text',
3655  proargtypes => 'oid', prosrc => 'pg_get_constraintdef' },
3656{ oid => '1716', descr => 'deparse an encoded expression',
3657  proname => 'pg_get_expr', provolatile => 's', prorettype => 'text',
3658  proargtypes => 'pg_node_tree oid', prosrc => 'pg_get_expr' },
3659{ oid => '1665', descr => 'name of sequence for a serial column',
3660  proname => 'pg_get_serial_sequence', provolatile => 's', prorettype => 'text',
3661  proargtypes => 'text text', prosrc => 'pg_get_serial_sequence' },
3662{ oid => '2098', descr => 'definition of a function',
3663  proname => 'pg_get_functiondef', provolatile => 's', prorettype => 'text',
3664  proargtypes => 'oid', prosrc => 'pg_get_functiondef' },
3665{ oid => '2162', descr => 'argument list of a function',
3666  proname => 'pg_get_function_arguments', provolatile => 's',
3667  prorettype => 'text', proargtypes => 'oid',
3668  prosrc => 'pg_get_function_arguments' },
3669{ oid => '2232', descr => 'identity argument list of a function',
3670  proname => 'pg_get_function_identity_arguments', provolatile => 's',
3671  prorettype => 'text', proargtypes => 'oid',
3672  prosrc => 'pg_get_function_identity_arguments' },
3673{ oid => '2165', descr => 'result type of a function',
3674  proname => 'pg_get_function_result', provolatile => 's', prorettype => 'text',
3675  proargtypes => 'oid', prosrc => 'pg_get_function_result' },
3676{ oid => '3808', descr => 'function argument default',
3677  proname => 'pg_get_function_arg_default', provolatile => 's',
3678  prorettype => 'text', proargtypes => 'oid int4',
3679  prosrc => 'pg_get_function_arg_default' },
3680
3681{ oid => '1686', descr => 'list of SQL keywords',
3682  proname => 'pg_get_keywords', procost => '10', prorows => '400',
3683  proretset => 't', provolatile => 's', prorettype => 'record',
3684  proargtypes => '', proallargtypes => '{text,char,text}',
3685  proargmodes => '{o,o,o}', proargnames => '{word,catcode,catdesc}',
3686  prosrc => 'pg_get_keywords' },
3687
3688{ oid => '2289', descr => 'convert generic options array to name/value table',
3689  proname => 'pg_options_to_table', prorows => '3', proretset => 't',
3690  provolatile => 's', prorettype => 'record', proargtypes => '_text',
3691  proallargtypes => '{_text,text,text}', proargmodes => '{i,o,o}',
3692  proargnames => '{options_array,option_name,option_value}',
3693  prosrc => 'pg_options_to_table' },
3694
3695{ oid => '1619', descr => 'type of the argument',
3696  proname => 'pg_typeof', proisstrict => 'f', provolatile => 's',
3697  prorettype => 'regtype', proargtypes => 'any', prosrc => 'pg_typeof' },
3698{ oid => '3162',
3699  descr => 'collation of the argument; implementation of the COLLATION FOR expression',
3700  proname => 'pg_collation_for', proisstrict => 'f', provolatile => 's',
3701  prorettype => 'text', proargtypes => 'any', prosrc => 'pg_collation_for' },
3702
3703{ oid => '3842', descr => 'is a relation insertable/updatable/deletable',
3704  proname => 'pg_relation_is_updatable', procost => '10', provolatile => 's',
3705  prorettype => 'int4', proargtypes => 'regclass bool',
3706  prosrc => 'pg_relation_is_updatable' },
3707{ oid => '3843', descr => 'is a column updatable',
3708  proname => 'pg_column_is_updatable', procost => '10', provolatile => 's',
3709  prorettype => 'bool', proargtypes => 'regclass int2 bool',
3710  prosrc => 'pg_column_is_updatable' },
3711
3712{ oid => '6120', descr => 'oid of replica identity index if any',
3713  proname => 'pg_get_replica_identity_index', procost => '10',
3714  provolatile => 's', prorettype => 'regclass', proargtypes => 'regclass',
3715  prosrc => 'pg_get_replica_identity_index' },
3716
3717# Deferrable unique constraint trigger
3718{ oid => '1250', descr => 'deferred UNIQUE constraint check',
3719  proname => 'unique_key_recheck', provolatile => 'v', prorettype => 'trigger',
3720  proargtypes => '', prosrc => 'unique_key_recheck' },
3721
3722# Generic referential integrity constraint triggers
3723{ oid => '1644', descr => 'referential integrity FOREIGN KEY ... REFERENCES',
3724  proname => 'RI_FKey_check_ins', provolatile => 'v', prorettype => 'trigger',
3725  proargtypes => '', prosrc => 'RI_FKey_check_ins' },
3726{ oid => '1645', descr => 'referential integrity FOREIGN KEY ... REFERENCES',
3727  proname => 'RI_FKey_check_upd', provolatile => 'v', prorettype => 'trigger',
3728  proargtypes => '', prosrc => 'RI_FKey_check_upd' },
3729{ oid => '1646', descr => 'referential integrity ON DELETE CASCADE',
3730  proname => 'RI_FKey_cascade_del', provolatile => 'v', prorettype => 'trigger',
3731  proargtypes => '', prosrc => 'RI_FKey_cascade_del' },
3732{ oid => '1647', descr => 'referential integrity ON UPDATE CASCADE',
3733  proname => 'RI_FKey_cascade_upd', provolatile => 'v', prorettype => 'trigger',
3734  proargtypes => '', prosrc => 'RI_FKey_cascade_upd' },
3735{ oid => '1648', descr => 'referential integrity ON DELETE RESTRICT',
3736  proname => 'RI_FKey_restrict_del', provolatile => 'v',
3737  prorettype => 'trigger', proargtypes => '',
3738  prosrc => 'RI_FKey_restrict_del' },
3739{ oid => '1649', descr => 'referential integrity ON UPDATE RESTRICT',
3740  proname => 'RI_FKey_restrict_upd', provolatile => 'v',
3741  prorettype => 'trigger', proargtypes => '',
3742  prosrc => 'RI_FKey_restrict_upd' },
3743{ oid => '1650', descr => 'referential integrity ON DELETE SET NULL',
3744  proname => 'RI_FKey_setnull_del', provolatile => 'v', prorettype => 'trigger',
3745  proargtypes => '', prosrc => 'RI_FKey_setnull_del' },
3746{ oid => '1651', descr => 'referential integrity ON UPDATE SET NULL',
3747  proname => 'RI_FKey_setnull_upd', provolatile => 'v', prorettype => 'trigger',
3748  proargtypes => '', prosrc => 'RI_FKey_setnull_upd' },
3749{ oid => '1652', descr => 'referential integrity ON DELETE SET DEFAULT',
3750  proname => 'RI_FKey_setdefault_del', provolatile => 'v',
3751  prorettype => 'trigger', proargtypes => '',
3752  prosrc => 'RI_FKey_setdefault_del' },
3753{ oid => '1653', descr => 'referential integrity ON UPDATE SET DEFAULT',
3754  proname => 'RI_FKey_setdefault_upd', provolatile => 'v',
3755  prorettype => 'trigger', proargtypes => '',
3756  prosrc => 'RI_FKey_setdefault_upd' },
3757{ oid => '1654', descr => 'referential integrity ON DELETE NO ACTION',
3758  proname => 'RI_FKey_noaction_del', provolatile => 'v',
3759  prorettype => 'trigger', proargtypes => '',
3760  prosrc => 'RI_FKey_noaction_del' },
3761{ oid => '1655', descr => 'referential integrity ON UPDATE NO ACTION',
3762  proname => 'RI_FKey_noaction_upd', provolatile => 'v',
3763  prorettype => 'trigger', proargtypes => '',
3764  prosrc => 'RI_FKey_noaction_upd' },
3765
3766{ oid => '1666',
3767  proname => 'varbiteq', proleakproof => 't', prorettype => 'bool',
3768  proargtypes => 'varbit varbit', prosrc => 'biteq' },
3769{ oid => '1667',
3770  proname => 'varbitne', proleakproof => 't', prorettype => 'bool',
3771  proargtypes => 'varbit varbit', prosrc => 'bitne' },
3772{ oid => '1668',
3773  proname => 'varbitge', proleakproof => 't', prorettype => 'bool',
3774  proargtypes => 'varbit varbit', prosrc => 'bitge' },
3775{ oid => '1669',
3776  proname => 'varbitgt', proleakproof => 't', prorettype => 'bool',
3777  proargtypes => 'varbit varbit', prosrc => 'bitgt' },
3778{ oid => '1670',
3779  proname => 'varbitle', proleakproof => 't', prorettype => 'bool',
3780  proargtypes => 'varbit varbit', prosrc => 'bitle' },
3781{ oid => '1671',
3782  proname => 'varbitlt', proleakproof => 't', prorettype => 'bool',
3783  proargtypes => 'varbit varbit', prosrc => 'bitlt' },
3784{ oid => '1672', descr => 'less-equal-greater',
3785  proname => 'varbitcmp', proleakproof => 't', prorettype => 'int4',
3786  proargtypes => 'varbit varbit', prosrc => 'bitcmp' },
3787
3788# avoid the C names bitand and bitor, since they are C++ keywords
3789{ oid => '1673',
3790  proname => 'bitand', prorettype => 'bit', proargtypes => 'bit bit',
3791  prosrc => 'bit_and' },
3792{ oid => '1674',
3793  proname => 'bitor', prorettype => 'bit', proargtypes => 'bit bit',
3794  prosrc => 'bit_or' },
3795{ oid => '1675',
3796  proname => 'bitxor', prorettype => 'bit', proargtypes => 'bit bit',
3797  prosrc => 'bitxor' },
3798{ oid => '1676',
3799  proname => 'bitnot', prorettype => 'bit', proargtypes => 'bit',
3800  prosrc => 'bitnot' },
3801{ oid => '1677',
3802  proname => 'bitshiftleft', prorettype => 'bit', proargtypes => 'bit int4',
3803  prosrc => 'bitshiftleft' },
3804{ oid => '1678',
3805  proname => 'bitshiftright', prorettype => 'bit', proargtypes => 'bit int4',
3806  prosrc => 'bitshiftright' },
3807{ oid => '1679',
3808  proname => 'bitcat', prorettype => 'varbit', proargtypes => 'varbit varbit',
3809  prosrc => 'bitcat' },
3810{ oid => '1680', descr => 'extract portion of bitstring',
3811  proname => 'substring', prorettype => 'bit', proargtypes => 'bit int4 int4',
3812  prosrc => 'bitsubstr' },
3813{ oid => '1681', descr => 'bitstring length',
3814  proname => 'length', prorettype => 'int4', proargtypes => 'bit',
3815  prosrc => 'bitlength' },
3816{ oid => '1682', descr => 'octet length',
3817  proname => 'octet_length', prorettype => 'int4', proargtypes => 'bit',
3818  prosrc => 'bitoctetlength' },
3819{ oid => '1683', descr => 'convert int4 to bitstring',
3820  proname => 'bit', prorettype => 'bit', proargtypes => 'int4 int4',
3821  prosrc => 'bitfromint4' },
3822{ oid => '1684', descr => 'convert bitstring to int4',
3823  proname => 'int4', prorettype => 'int4', proargtypes => 'bit',
3824  prosrc => 'bittoint4' },
3825
3826{ oid => '1685', descr => 'adjust bit() to typmod length',
3827  proname => 'bit', prorettype => 'bit', proargtypes => 'bit int4 bool',
3828  prosrc => 'bit' },
3829{ oid => '3158', descr => 'planner support for varbit length coercion',
3830  proname => 'varbit_support', prorettype => 'internal',
3831  proargtypes => 'internal', prosrc => 'varbit_support' },
3832{ oid => '1687', descr => 'adjust varbit() to typmod length',
3833  proname => 'varbit', prosupport => 'varbit_support', prorettype => 'varbit',
3834  proargtypes => 'varbit int4 bool', prosrc => 'varbit' },
3835
3836{ oid => '1698', descr => 'position of sub-bitstring',
3837  proname => 'position', prorettype => 'int4', proargtypes => 'bit bit',
3838  prosrc => 'bitposition' },
3839{ oid => '1699', descr => 'extract portion of bitstring',
3840  proname => 'substring', prorettype => 'bit', proargtypes => 'bit int4',
3841  prosrc => 'bitsubstr_no_len' },
3842
3843{ oid => '3030', descr => 'substitute portion of bitstring',
3844  proname => 'overlay', prorettype => 'bit', proargtypes => 'bit bit int4 int4',
3845  prosrc => 'bitoverlay' },
3846{ oid => '3031', descr => 'substitute portion of bitstring',
3847  proname => 'overlay', prorettype => 'bit', proargtypes => 'bit bit int4',
3848  prosrc => 'bitoverlay_no_len' },
3849{ oid => '3032', descr => 'get bit',
3850  proname => 'get_bit', prorettype => 'int4', proargtypes => 'bit int4',
3851  prosrc => 'bitgetbit' },
3852{ oid => '3033', descr => 'set bit',
3853  proname => 'set_bit', prorettype => 'bit', proargtypes => 'bit int4 int4',
3854  prosrc => 'bitsetbit' },
3855
3856# for macaddr type support
3857{ oid => '436', descr => 'I/O',
3858  proname => 'macaddr_in', prorettype => 'macaddr', proargtypes => 'cstring',
3859  prosrc => 'macaddr_in' },
3860{ oid => '437', descr => 'I/O',
3861  proname => 'macaddr_out', prorettype => 'cstring', proargtypes => 'macaddr',
3862  prosrc => 'macaddr_out' },
3863
3864{ oid => '753', descr => 'MACADDR manufacturer fields',
3865  proname => 'trunc', prorettype => 'macaddr', proargtypes => 'macaddr',
3866  prosrc => 'macaddr_trunc' },
3867
3868{ oid => '830',
3869  proname => 'macaddr_eq', proleakproof => 't', prorettype => 'bool',
3870  proargtypes => 'macaddr macaddr', prosrc => 'macaddr_eq' },
3871{ oid => '831',
3872  proname => 'macaddr_lt', proleakproof => 't', prorettype => 'bool',
3873  proargtypes => 'macaddr macaddr', prosrc => 'macaddr_lt' },
3874{ oid => '832',
3875  proname => 'macaddr_le', proleakproof => 't', prorettype => 'bool',
3876  proargtypes => 'macaddr macaddr', prosrc => 'macaddr_le' },
3877{ oid => '833',
3878  proname => 'macaddr_gt', proleakproof => 't', prorettype => 'bool',
3879  proargtypes => 'macaddr macaddr', prosrc => 'macaddr_gt' },
3880{ oid => '834',
3881  proname => 'macaddr_ge', proleakproof => 't', prorettype => 'bool',
3882  proargtypes => 'macaddr macaddr', prosrc => 'macaddr_ge' },
3883{ oid => '835',
3884  proname => 'macaddr_ne', proleakproof => 't', prorettype => 'bool',
3885  proargtypes => 'macaddr macaddr', prosrc => 'macaddr_ne' },
3886{ oid => '836', descr => 'less-equal-greater',
3887  proname => 'macaddr_cmp', proleakproof => 't', prorettype => 'int4',
3888  proargtypes => 'macaddr macaddr', prosrc => 'macaddr_cmp' },
3889{ oid => '3144',
3890  proname => 'macaddr_not', prorettype => 'macaddr', proargtypes => 'macaddr',
3891  prosrc => 'macaddr_not' },
3892{ oid => '3145',
3893  proname => 'macaddr_and', prorettype => 'macaddr',
3894  proargtypes => 'macaddr macaddr', prosrc => 'macaddr_and' },
3895{ oid => '3146',
3896  proname => 'macaddr_or', prorettype => 'macaddr',
3897  proargtypes => 'macaddr macaddr', prosrc => 'macaddr_or' },
3898{ oid => '3359', descr => 'sort support',
3899  proname => 'macaddr_sortsupport', prorettype => 'void',
3900  proargtypes => 'internal', prosrc => 'macaddr_sortsupport' },
3901
3902# for macaddr8 type support
3903{ oid => '4110', descr => 'I/O',
3904  proname => 'macaddr8_in', prorettype => 'macaddr8', proargtypes => 'cstring',
3905  prosrc => 'macaddr8_in' },
3906{ oid => '4111', descr => 'I/O',
3907  proname => 'macaddr8_out', prorettype => 'cstring', proargtypes => 'macaddr8',
3908  prosrc => 'macaddr8_out' },
3909
3910{ oid => '4112', descr => 'MACADDR8 manufacturer fields',
3911  proname => 'trunc', prorettype => 'macaddr8', proargtypes => 'macaddr8',
3912  prosrc => 'macaddr8_trunc' },
3913
3914{ oid => '4113',
3915  proname => 'macaddr8_eq', proleakproof => 't', prorettype => 'bool',
3916  proargtypes => 'macaddr8 macaddr8', prosrc => 'macaddr8_eq' },
3917{ oid => '4114',
3918  proname => 'macaddr8_lt', proleakproof => 't', prorettype => 'bool',
3919  proargtypes => 'macaddr8 macaddr8', prosrc => 'macaddr8_lt' },
3920{ oid => '4115',
3921  proname => 'macaddr8_le', proleakproof => 't', prorettype => 'bool',
3922  proargtypes => 'macaddr8 macaddr8', prosrc => 'macaddr8_le' },
3923{ oid => '4116',
3924  proname => 'macaddr8_gt', proleakproof => 't', prorettype => 'bool',
3925  proargtypes => 'macaddr8 macaddr8', prosrc => 'macaddr8_gt' },
3926{ oid => '4117',
3927  proname => 'macaddr8_ge', proleakproof => 't', prorettype => 'bool',
3928  proargtypes => 'macaddr8 macaddr8', prosrc => 'macaddr8_ge' },
3929{ oid => '4118',
3930  proname => 'macaddr8_ne', proleakproof => 't', prorettype => 'bool',
3931  proargtypes => 'macaddr8 macaddr8', prosrc => 'macaddr8_ne' },
3932{ oid => '4119', descr => 'less-equal-greater',
3933  proname => 'macaddr8_cmp', proleakproof => 't', prorettype => 'int4',
3934  proargtypes => 'macaddr8 macaddr8', prosrc => 'macaddr8_cmp' },
3935{ oid => '4120',
3936  proname => 'macaddr8_not', prorettype => 'macaddr8',
3937  proargtypes => 'macaddr8', prosrc => 'macaddr8_not' },
3938{ oid => '4121',
3939  proname => 'macaddr8_and', prorettype => 'macaddr8',
3940  proargtypes => 'macaddr8 macaddr8', prosrc => 'macaddr8_and' },
3941{ oid => '4122',
3942  proname => 'macaddr8_or', prorettype => 'macaddr8',
3943  proargtypes => 'macaddr8 macaddr8', prosrc => 'macaddr8_or' },
3944{ oid => '4123', descr => 'convert macaddr to macaddr8',
3945  proname => 'macaddr8', prorettype => 'macaddr8', proargtypes => 'macaddr',
3946  prosrc => 'macaddrtomacaddr8' },
3947{ oid => '4124', descr => 'convert macaddr8 to macaddr',
3948  proname => 'macaddr', prorettype => 'macaddr', proargtypes => 'macaddr8',
3949  prosrc => 'macaddr8tomacaddr' },
3950{ oid => '4125', descr => 'set 7th bit in macaddr8',
3951  proname => 'macaddr8_set7bit', prorettype => 'macaddr8',
3952  proargtypes => 'macaddr8', prosrc => 'macaddr8_set7bit' },
3953
3954# for inet type support
3955{ oid => '910', descr => 'I/O',
3956  proname => 'inet_in', prorettype => 'inet', proargtypes => 'cstring',
3957  prosrc => 'inet_in' },
3958{ oid => '911', descr => 'I/O',
3959  proname => 'inet_out', prorettype => 'cstring', proargtypes => 'inet',
3960  prosrc => 'inet_out' },
3961
3962# for cidr type support
3963{ oid => '1267', descr => 'I/O',
3964  proname => 'cidr_in', prorettype => 'cidr', proargtypes => 'cstring',
3965  prosrc => 'cidr_in' },
3966{ oid => '1427', descr => 'I/O',
3967  proname => 'cidr_out', prorettype => 'cstring', proargtypes => 'cidr',
3968  prosrc => 'cidr_out' },
3969
3970# these are used for both inet and cidr
3971{ oid => '920',
3972  proname => 'network_eq', proleakproof => 't', prorettype => 'bool',
3973  proargtypes => 'inet inet', prosrc => 'network_eq' },
3974{ oid => '921',
3975  proname => 'network_lt', proleakproof => 't', prorettype => 'bool',
3976  proargtypes => 'inet inet', prosrc => 'network_lt' },
3977{ oid => '922',
3978  proname => 'network_le', proleakproof => 't', prorettype => 'bool',
3979  proargtypes => 'inet inet', prosrc => 'network_le' },
3980{ oid => '923',
3981  proname => 'network_gt', proleakproof => 't', prorettype => 'bool',
3982  proargtypes => 'inet inet', prosrc => 'network_gt' },
3983{ oid => '924',
3984  proname => 'network_ge', proleakproof => 't', prorettype => 'bool',
3985  proargtypes => 'inet inet', prosrc => 'network_ge' },
3986{ oid => '925',
3987  proname => 'network_ne', proleakproof => 't', prorettype => 'bool',
3988  proargtypes => 'inet inet', prosrc => 'network_ne' },
3989{ oid => '3562', descr => 'larger of two',
3990  proname => 'network_larger', prorettype => 'inet', proargtypes => 'inet inet',
3991  prosrc => 'network_larger' },
3992{ oid => '3563', descr => 'smaller of two',
3993  proname => 'network_smaller', prorettype => 'inet',
3994  proargtypes => 'inet inet', prosrc => 'network_smaller' },
3995{ oid => '926', descr => 'less-equal-greater',
3996  proname => 'network_cmp', proleakproof => 't', prorettype => 'int4',
3997  proargtypes => 'inet inet', prosrc => 'network_cmp' },
3998{ oid => '927',
3999  proname => 'network_sub', prosupport => 'network_subset_support',
4000  prorettype => 'bool', proargtypes => 'inet inet', prosrc => 'network_sub' },
4001{ oid => '928',
4002  proname => 'network_subeq', prosupport => 'network_subset_support',
4003  prorettype => 'bool', proargtypes => 'inet inet', prosrc => 'network_subeq' },
4004{ oid => '929',
4005  proname => 'network_sup', prosupport => 'network_subset_support',
4006  prorettype => 'bool', proargtypes => 'inet inet', prosrc => 'network_sup' },
4007{ oid => '930',
4008  proname => 'network_supeq', prosupport => 'network_subset_support',
4009  prorettype => 'bool', proargtypes => 'inet inet', prosrc => 'network_supeq' },
4010{ oid => '1173', descr => 'planner support for network_sub/superset',
4011  proname => 'network_subset_support', prorettype => 'internal',
4012  proargtypes => 'internal', prosrc => 'network_subset_support' },
4013
4014{ oid => '3551',
4015  proname => 'network_overlap', prorettype => 'bool',
4016  proargtypes => 'inet inet', prosrc => 'network_overlap' },
4017{ oid => '5033', descr => 'sort support',
4018  proname => 'network_sortsupport', prorettype => 'void',
4019  proargtypes => 'internal', prosrc => 'network_sortsupport' },
4020
4021# inet/cidr functions
4022{ oid => '598', descr => 'abbreviated display of inet value',
4023  proname => 'abbrev', prorettype => 'text', proargtypes => 'inet',
4024  prosrc => 'inet_abbrev' },
4025{ oid => '599', descr => 'abbreviated display of cidr value',
4026  proname => 'abbrev', prorettype => 'text', proargtypes => 'cidr',
4027  prosrc => 'cidr_abbrev' },
4028{ oid => '605', descr => 'change netmask of inet',
4029  proname => 'set_masklen', prorettype => 'inet', proargtypes => 'inet int4',
4030  prosrc => 'inet_set_masklen' },
4031{ oid => '635', descr => 'change netmask of cidr',
4032  proname => 'set_masklen', prorettype => 'cidr', proargtypes => 'cidr int4',
4033  prosrc => 'cidr_set_masklen' },
4034{ oid => '711', descr => 'address family (4 for IPv4, 6 for IPv6)',
4035  proname => 'family', prorettype => 'int4', proargtypes => 'inet',
4036  prosrc => 'network_family' },
4037{ oid => '683', descr => 'network part of address',
4038  proname => 'network', prorettype => 'cidr', proargtypes => 'inet',
4039  prosrc => 'network_network' },
4040{ oid => '696', descr => 'netmask of address',
4041  proname => 'netmask', prorettype => 'inet', proargtypes => 'inet',
4042  prosrc => 'network_netmask' },
4043{ oid => '697', descr => 'netmask length',
4044  proname => 'masklen', prorettype => 'int4', proargtypes => 'inet',
4045  prosrc => 'network_masklen' },
4046{ oid => '698', descr => 'broadcast address of network',
4047  proname => 'broadcast', prorettype => 'inet', proargtypes => 'inet',
4048  prosrc => 'network_broadcast' },
4049{ oid => '699', descr => 'show address octets only',
4050  proname => 'host', prorettype => 'text', proargtypes => 'inet',
4051  prosrc => 'network_host' },
4052{ oid => '730', descr => 'show all parts of inet/cidr value',
4053  proname => 'text', prorettype => 'text', proargtypes => 'inet',
4054  prosrc => 'network_show' },
4055{ oid => '1362', descr => 'hostmask of address',
4056  proname => 'hostmask', prorettype => 'inet', proargtypes => 'inet',
4057  prosrc => 'network_hostmask' },
4058{ oid => '1715', descr => 'convert inet to cidr',
4059  proname => 'cidr', prorettype => 'cidr', proargtypes => 'inet',
4060  prosrc => 'inet_to_cidr' },
4061
4062{ oid => '2196', descr => 'inet address of the client',
4063  proname => 'inet_client_addr', proisstrict => 'f', provolatile => 's',
4064  proparallel => 'r', prorettype => 'inet', proargtypes => '',
4065  prosrc => 'inet_client_addr' },
4066{ oid => '2197', descr => 'client\'s port number for this connection',
4067  proname => 'inet_client_port', proisstrict => 'f', provolatile => 's',
4068  proparallel => 'r', prorettype => 'int4', proargtypes => '',
4069  prosrc => 'inet_client_port' },
4070{ oid => '2198', descr => 'inet address of the server',
4071  proname => 'inet_server_addr', proisstrict => 'f', provolatile => 's',
4072  prorettype => 'inet', proargtypes => '', prosrc => 'inet_server_addr' },
4073{ oid => '2199', descr => 'server\'s port number for this connection',
4074  proname => 'inet_server_port', proisstrict => 'f', provolatile => 's',
4075  prorettype => 'int4', proargtypes => '', prosrc => 'inet_server_port' },
4076
4077{ oid => '2627',
4078  proname => 'inetnot', prorettype => 'inet', proargtypes => 'inet',
4079  prosrc => 'inetnot' },
4080{ oid => '2628',
4081  proname => 'inetand', prorettype => 'inet', proargtypes => 'inet inet',
4082  prosrc => 'inetand' },
4083{ oid => '2629',
4084  proname => 'inetor', prorettype => 'inet', proargtypes => 'inet inet',
4085  prosrc => 'inetor' },
4086{ oid => '2630',
4087  proname => 'inetpl', prorettype => 'inet', proargtypes => 'inet int8',
4088  prosrc => 'inetpl' },
4089{ oid => '2631',
4090  proname => 'int8pl_inet', prolang => 'sql', prorettype => 'inet',
4091  proargtypes => 'int8 inet', prosrc => 'select $2 + $1' },
4092{ oid => '2632',
4093  proname => 'inetmi_int8', prorettype => 'inet', proargtypes => 'inet int8',
4094  prosrc => 'inetmi_int8' },
4095{ oid => '2633',
4096  proname => 'inetmi', prorettype => 'int8', proargtypes => 'inet inet',
4097  prosrc => 'inetmi' },
4098{ oid => '4071', descr => 'are the addresses from the same family?',
4099  proname => 'inet_same_family', prorettype => 'bool',
4100  proargtypes => 'inet inet', prosrc => 'inet_same_family' },
4101{ oid => '4063',
4102  descr => 'the smallest network which includes both of the given networks',
4103  proname => 'inet_merge', prorettype => 'cidr', proargtypes => 'inet inet',
4104  prosrc => 'inet_merge' },
4105
4106# GiST support for inet and cidr
4107{ oid => '3553', descr => 'GiST support',
4108  proname => 'inet_gist_consistent', prorettype => 'bool',
4109  proargtypes => 'internal inet int2 oid internal',
4110  prosrc => 'inet_gist_consistent' },
4111{ oid => '3554', descr => 'GiST support',
4112  proname => 'inet_gist_union', prorettype => 'inet',
4113  proargtypes => 'internal internal', prosrc => 'inet_gist_union' },
4114{ oid => '3555', descr => 'GiST support',
4115  proname => 'inet_gist_compress', prorettype => 'internal',
4116  proargtypes => 'internal', prosrc => 'inet_gist_compress' },
4117{ oid => '3573', descr => 'GiST support',
4118  proname => 'inet_gist_fetch', prorettype => 'internal',
4119  proargtypes => 'internal', prosrc => 'inet_gist_fetch' },
4120{ oid => '3557', descr => 'GiST support',
4121  proname => 'inet_gist_penalty', prorettype => 'internal',
4122  proargtypes => 'internal internal internal', prosrc => 'inet_gist_penalty' },
4123{ oid => '3558', descr => 'GiST support',
4124  proname => 'inet_gist_picksplit', prorettype => 'internal',
4125  proargtypes => 'internal internal', prosrc => 'inet_gist_picksplit' },
4126{ oid => '3559', descr => 'GiST support',
4127  proname => 'inet_gist_same', prorettype => 'internal',
4128  proargtypes => 'inet inet internal', prosrc => 'inet_gist_same' },
4129
4130# SP-GiST support for inet and cidr
4131{ oid => '3795', descr => 'SP-GiST support',
4132  proname => 'inet_spg_config', prorettype => 'void',
4133  proargtypes => 'internal internal', prosrc => 'inet_spg_config' },
4134{ oid => '3796', descr => 'SP-GiST support',
4135  proname => 'inet_spg_choose', prorettype => 'void',
4136  proargtypes => 'internal internal', prosrc => 'inet_spg_choose' },
4137{ oid => '3797', descr => 'SP-GiST support',
4138  proname => 'inet_spg_picksplit', prorettype => 'void',
4139  proargtypes => 'internal internal', prosrc => 'inet_spg_picksplit' },
4140{ oid => '3798', descr => 'SP-GiST support',
4141  proname => 'inet_spg_inner_consistent', prorettype => 'void',
4142  proargtypes => 'internal internal', prosrc => 'inet_spg_inner_consistent' },
4143{ oid => '3799', descr => 'SP-GiST support',
4144  proname => 'inet_spg_leaf_consistent', prorettype => 'bool',
4145  proargtypes => 'internal internal', prosrc => 'inet_spg_leaf_consistent' },
4146
4147# Selectivity estimation for inet and cidr
4148{ oid => '3560', descr => 'restriction selectivity for network operators',
4149  proname => 'networksel', provolatile => 's', prorettype => 'float8',
4150  proargtypes => 'internal oid internal int4', prosrc => 'networksel' },
4151{ oid => '3561', descr => 'join selectivity for network operators',
4152  proname => 'networkjoinsel', provolatile => 's', prorettype => 'float8',
4153  proargtypes => 'internal oid internal int2 internal',
4154  prosrc => 'networkjoinsel' },
4155
4156{ oid => '1690',
4157  proname => 'time_mi_time', prorettype => 'interval',
4158  proargtypes => 'time time', prosrc => 'time_mi_time' },
4159
4160{ oid => '1691',
4161  proname => 'boolle', proleakproof => 't', prorettype => 'bool',
4162  proargtypes => 'bool bool', prosrc => 'boolle' },
4163{ oid => '1692',
4164  proname => 'boolge', proleakproof => 't', prorettype => 'bool',
4165  proargtypes => 'bool bool', prosrc => 'boolge' },
4166{ oid => '1693', descr => 'less-equal-greater',
4167  proname => 'btboolcmp', proleakproof => 't', prorettype => 'int4',
4168  proargtypes => 'bool bool', prosrc => 'btboolcmp' },
4169
4170{ oid => '1688', descr => 'hash',
4171  proname => 'time_hash', prorettype => 'int4', proargtypes => 'time',
4172  prosrc => 'time_hash' },
4173{ oid => '3409', descr => 'hash',
4174  proname => 'time_hash_extended', prorettype => 'int8',
4175  proargtypes => 'time int8', prosrc => 'time_hash_extended' },
4176{ oid => '1696', descr => 'hash',
4177  proname => 'timetz_hash', prorettype => 'int4', proargtypes => 'timetz',
4178  prosrc => 'timetz_hash' },
4179{ oid => '3410', descr => 'hash',
4180  proname => 'timetz_hash_extended', prorettype => 'int8',
4181  proargtypes => 'timetz int8', prosrc => 'timetz_hash_extended' },
4182{ oid => '1697', descr => 'hash',
4183  proname => 'interval_hash', prorettype => 'int4', proargtypes => 'interval',
4184  prosrc => 'interval_hash' },
4185{ oid => '3418', descr => 'hash',
4186  proname => 'interval_hash_extended', prorettype => 'int8',
4187  proargtypes => 'interval int8', prosrc => 'interval_hash_extended' },
4188
4189# OID's 1700 - 1799 NUMERIC data type
4190
4191{ oid => '1701', descr => 'I/O',
4192  proname => 'numeric_in', prorettype => 'numeric',
4193  proargtypes => 'cstring oid int4', prosrc => 'numeric_in' },
4194{ oid => '1702', descr => 'I/O',
4195  proname => 'numeric_out', prorettype => 'cstring', proargtypes => 'numeric',
4196  prosrc => 'numeric_out' },
4197{ oid => '2917', descr => 'I/O typmod',
4198  proname => 'numerictypmodin', prorettype => 'int4', proargtypes => '_cstring',
4199  prosrc => 'numerictypmodin' },
4200{ oid => '2918', descr => 'I/O typmod',
4201  proname => 'numerictypmodout', prorettype => 'cstring', proargtypes => 'int4',
4202  prosrc => 'numerictypmodout' },
4203{ oid => '3157', descr => 'planner support for numeric length coercion',
4204  proname => 'numeric_support', prorettype => 'internal',
4205  proargtypes => 'internal', prosrc => 'numeric_support' },
4206{ oid => '1703', descr => 'adjust numeric to typmod precision/scale',
4207  proname => 'numeric', prosupport => 'numeric_support',
4208  prorettype => 'numeric', proargtypes => 'numeric int4', prosrc => 'numeric' },
4209{ oid => '1704',
4210  proname => 'numeric_abs', prorettype => 'numeric', proargtypes => 'numeric',
4211  prosrc => 'numeric_abs' },
4212{ oid => '1705', descr => 'absolute value',
4213  proname => 'abs', prorettype => 'numeric', proargtypes => 'numeric',
4214  prosrc => 'numeric_abs' },
4215{ oid => '1706', descr => 'sign of value',
4216  proname => 'sign', prorettype => 'numeric', proargtypes => 'numeric',
4217  prosrc => 'numeric_sign' },
4218{ oid => '1707', descr => 'value rounded to \'scale\'',
4219  proname => 'round', prorettype => 'numeric', proargtypes => 'numeric int4',
4220  prosrc => 'numeric_round' },
4221{ oid => '1708', descr => 'value rounded to \'scale\' of zero',
4222  proname => 'round', prolang => 'sql', prorettype => 'numeric',
4223  proargtypes => 'numeric', prosrc => 'select pg_catalog.round($1,0)' },
4224{ oid => '1709', descr => 'value truncated to \'scale\'',
4225  proname => 'trunc', prorettype => 'numeric', proargtypes => 'numeric int4',
4226  prosrc => 'numeric_trunc' },
4227{ oid => '1710', descr => 'value truncated to \'scale\' of zero',
4228  proname => 'trunc', prolang => 'sql', prorettype => 'numeric',
4229  proargtypes => 'numeric', prosrc => 'select pg_catalog.trunc($1,0)' },
4230{ oid => '1711', descr => 'nearest integer >= value',
4231  proname => 'ceil', prorettype => 'numeric', proargtypes => 'numeric',
4232  prosrc => 'numeric_ceil' },
4233{ oid => '2167', descr => 'nearest integer >= value',
4234  proname => 'ceiling', prorettype => 'numeric', proargtypes => 'numeric',
4235  prosrc => 'numeric_ceil' },
4236{ oid => '1712', descr => 'nearest integer <= value',
4237  proname => 'floor', prorettype => 'numeric', proargtypes => 'numeric',
4238  prosrc => 'numeric_floor' },
4239{ oid => '1718',
4240  proname => 'numeric_eq', prorettype => 'bool',
4241  proargtypes => 'numeric numeric', prosrc => 'numeric_eq' },
4242{ oid => '1719',
4243  proname => 'numeric_ne', prorettype => 'bool',
4244  proargtypes => 'numeric numeric', prosrc => 'numeric_ne' },
4245{ oid => '1720',
4246  proname => 'numeric_gt', prorettype => 'bool',
4247  proargtypes => 'numeric numeric', prosrc => 'numeric_gt' },
4248{ oid => '1721',
4249  proname => 'numeric_ge', prorettype => 'bool',
4250  proargtypes => 'numeric numeric', prosrc => 'numeric_ge' },
4251{ oid => '1722',
4252  proname => 'numeric_lt', prorettype => 'bool',
4253  proargtypes => 'numeric numeric', prosrc => 'numeric_lt' },
4254{ oid => '1723',
4255  proname => 'numeric_le', prorettype => 'bool',
4256  proargtypes => 'numeric numeric', prosrc => 'numeric_le' },
4257{ oid => '1724',
4258  proname => 'numeric_add', prorettype => 'numeric',
4259  proargtypes => 'numeric numeric', prosrc => 'numeric_add' },
4260{ oid => '1725',
4261  proname => 'numeric_sub', prorettype => 'numeric',
4262  proargtypes => 'numeric numeric', prosrc => 'numeric_sub' },
4263{ oid => '1726',
4264  proname => 'numeric_mul', prorettype => 'numeric',
4265  proargtypes => 'numeric numeric', prosrc => 'numeric_mul' },
4266{ oid => '1727',
4267  proname => 'numeric_div', prorettype => 'numeric',
4268  proargtypes => 'numeric numeric', prosrc => 'numeric_div' },
4269{ oid => '1728', descr => 'modulus',
4270  proname => 'mod', prorettype => 'numeric', proargtypes => 'numeric numeric',
4271  prosrc => 'numeric_mod' },
4272{ oid => '1729',
4273  proname => 'numeric_mod', prorettype => 'numeric',
4274  proargtypes => 'numeric numeric', prosrc => 'numeric_mod' },
4275{ oid => '5048', descr => 'greatest common divisor',
4276  proname => 'gcd', prorettype => 'numeric', proargtypes => 'numeric numeric',
4277  prosrc => 'numeric_gcd' },
4278{ oid => '5049', descr => 'least common multiple',
4279  proname => 'lcm', prorettype => 'numeric', proargtypes => 'numeric numeric',
4280  prosrc => 'numeric_lcm' },
4281{ oid => '1730', descr => 'square root',
4282  proname => 'sqrt', prorettype => 'numeric', proargtypes => 'numeric',
4283  prosrc => 'numeric_sqrt' },
4284{ oid => '1731', descr => 'square root',
4285  proname => 'numeric_sqrt', prorettype => 'numeric', proargtypes => 'numeric',
4286  prosrc => 'numeric_sqrt' },
4287{ oid => '1732', descr => 'natural exponential (e^x)',
4288  proname => 'exp', prorettype => 'numeric', proargtypes => 'numeric',
4289  prosrc => 'numeric_exp' },
4290{ oid => '1733', descr => 'natural exponential (e^x)',
4291  proname => 'numeric_exp', prorettype => 'numeric', proargtypes => 'numeric',
4292  prosrc => 'numeric_exp' },
4293{ oid => '1734', descr => 'natural logarithm',
4294  proname => 'ln', prorettype => 'numeric', proargtypes => 'numeric',
4295  prosrc => 'numeric_ln' },
4296{ oid => '1735', descr => 'natural logarithm',
4297  proname => 'numeric_ln', prorettype => 'numeric', proargtypes => 'numeric',
4298  prosrc => 'numeric_ln' },
4299{ oid => '1736', descr => 'logarithm base m of n',
4300  proname => 'log', prorettype => 'numeric', proargtypes => 'numeric numeric',
4301  prosrc => 'numeric_log' },
4302{ oid => '1737', descr => 'logarithm base m of n',
4303  proname => 'numeric_log', prorettype => 'numeric',
4304  proargtypes => 'numeric numeric', prosrc => 'numeric_log' },
4305{ oid => '1738', descr => 'exponentiation',
4306  proname => 'pow', prorettype => 'numeric', proargtypes => 'numeric numeric',
4307  prosrc => 'numeric_power' },
4308{ oid => '2169', descr => 'exponentiation',
4309  proname => 'power', prorettype => 'numeric', proargtypes => 'numeric numeric',
4310  prosrc => 'numeric_power' },
4311{ oid => '1739',
4312  proname => 'numeric_power', prorettype => 'numeric',
4313  proargtypes => 'numeric numeric', prosrc => 'numeric_power' },
4314{ oid => '3281', descr => 'number of decimal digits in the fractional part',
4315  proname => 'scale', prorettype => 'int4', proargtypes => 'numeric',
4316  prosrc => 'numeric_scale' },
4317{ oid => '5042', descr => 'minimum scale needed to represent the value',
4318  proname => 'min_scale', prorettype => 'int4', proargtypes => 'numeric',
4319  prosrc => 'numeric_min_scale' },
4320{ oid => '5043',
4321  descr => 'numeric with minimum scale needed to represent the value',
4322  proname => 'trim_scale', prorettype => 'numeric', proargtypes => 'numeric',
4323  prosrc => 'numeric_trim_scale' },
4324{ oid => '1740', descr => 'convert int4 to numeric',
4325  proname => 'numeric', prorettype => 'numeric', proargtypes => 'int4',
4326  prosrc => 'int4_numeric' },
4327{ oid => '1741', descr => 'base 10 logarithm',
4328  proname => 'log', prolang => 'sql', prorettype => 'numeric',
4329  proargtypes => 'numeric', prosrc => 'select pg_catalog.log(10, $1)' },
4330{ oid => '1481', descr => 'base 10 logarithm',
4331  proname => 'log10', prolang => 'sql', prorettype => 'numeric',
4332  proargtypes => 'numeric', prosrc => 'select pg_catalog.log(10, $1)' },
4333{ oid => '1742', descr => 'convert float4 to numeric',
4334  proname => 'numeric', prorettype => 'numeric', proargtypes => 'float4',
4335  prosrc => 'float4_numeric' },
4336{ oid => '1743', descr => 'convert float8 to numeric',
4337  proname => 'numeric', prorettype => 'numeric', proargtypes => 'float8',
4338  prosrc => 'float8_numeric' },
4339{ oid => '1744', descr => 'convert numeric to int4',
4340  proname => 'int4', prorettype => 'int4', proargtypes => 'numeric',
4341  prosrc => 'numeric_int4' },
4342{ oid => '1745', descr => 'convert numeric to float4',
4343  proname => 'float4', prorettype => 'float4', proargtypes => 'numeric',
4344  prosrc => 'numeric_float4' },
4345{ oid => '1746', descr => 'convert numeric to float8',
4346  proname => 'float8', prorettype => 'float8', proargtypes => 'numeric',
4347  prosrc => 'numeric_float8' },
4348{ oid => '1973', descr => 'trunc(x/y)',
4349  proname => 'div', prorettype => 'numeric', proargtypes => 'numeric numeric',
4350  prosrc => 'numeric_div_trunc' },
4351{ oid => '1980', descr => 'trunc(x/y)',
4352  proname => 'numeric_div_trunc', prorettype => 'numeric',
4353  proargtypes => 'numeric numeric', prosrc => 'numeric_div_trunc' },
4354{ oid => '2170', descr => 'bucket number of operand in equal-width histogram',
4355  proname => 'width_bucket', prorettype => 'int4',
4356  proargtypes => 'numeric numeric numeric int4',
4357  prosrc => 'width_bucket_numeric' },
4358
4359{ oid => '1747',
4360  proname => 'time_pl_interval', prorettype => 'time',
4361  proargtypes => 'time interval', prosrc => 'time_pl_interval' },
4362{ oid => '1748',
4363  proname => 'time_mi_interval', prorettype => 'time',
4364  proargtypes => 'time interval', prosrc => 'time_mi_interval' },
4365{ oid => '1749',
4366  proname => 'timetz_pl_interval', prorettype => 'timetz',
4367  proargtypes => 'timetz interval', prosrc => 'timetz_pl_interval' },
4368{ oid => '1750',
4369  proname => 'timetz_mi_interval', prorettype => 'timetz',
4370  proargtypes => 'timetz interval', prosrc => 'timetz_mi_interval' },
4371
4372{ oid => '1764', descr => 'increment by one',
4373  proname => 'numeric_inc', prorettype => 'numeric', proargtypes => 'numeric',
4374  prosrc => 'numeric_inc' },
4375{ oid => '1766', descr => 'smaller of two',
4376  proname => 'numeric_smaller', prorettype => 'numeric',
4377  proargtypes => 'numeric numeric', prosrc => 'numeric_smaller' },
4378{ oid => '1767', descr => 'larger of two',
4379  proname => 'numeric_larger', prorettype => 'numeric',
4380  proargtypes => 'numeric numeric', prosrc => 'numeric_larger' },
4381{ oid => '1769', descr => 'less-equal-greater',
4382  proname => 'numeric_cmp', prorettype => 'int4',
4383  proargtypes => 'numeric numeric', prosrc => 'numeric_cmp' },
4384{ oid => '3283', descr => 'sort support',
4385  proname => 'numeric_sortsupport', prorettype => 'void',
4386  proargtypes => 'internal', prosrc => 'numeric_sortsupport' },
4387{ oid => '1771',
4388  proname => 'numeric_uminus', prorettype => 'numeric',
4389  proargtypes => 'numeric', prosrc => 'numeric_uminus' },
4390{ oid => '1779', descr => 'convert numeric to int8',
4391  proname => 'int8', prorettype => 'int8', proargtypes => 'numeric',
4392  prosrc => 'numeric_int8' },
4393{ oid => '1781', descr => 'convert int8 to numeric',
4394  proname => 'numeric', prorettype => 'numeric', proargtypes => 'int8',
4395  prosrc => 'int8_numeric' },
4396{ oid => '1782', descr => 'convert int2 to numeric',
4397  proname => 'numeric', prorettype => 'numeric', proargtypes => 'int2',
4398  prosrc => 'int2_numeric' },
4399{ oid => '1783', descr => 'convert numeric to int2',
4400  proname => 'int2', prorettype => 'int2', proargtypes => 'numeric',
4401  prosrc => 'numeric_int2' },
4402
4403{ oid => '3556', descr => 'convert jsonb to boolean',
4404  proname => 'bool', prorettype => 'bool', proargtypes => 'jsonb',
4405  prosrc => 'jsonb_bool' },
4406{ oid => '3449', descr => 'convert jsonb to numeric',
4407  proname => 'numeric', prorettype => 'numeric', proargtypes => 'jsonb',
4408  prosrc => 'jsonb_numeric' },
4409{ oid => '3450', descr => 'convert jsonb to int2',
4410  proname => 'int2', prorettype => 'int2', proargtypes => 'jsonb',
4411  prosrc => 'jsonb_int2' },
4412{ oid => '3451', descr => 'convert jsonb to int4',
4413  proname => 'int4', prorettype => 'int4', proargtypes => 'jsonb',
4414  prosrc => 'jsonb_int4' },
4415{ oid => '3452', descr => 'convert jsonb to int8',
4416  proname => 'int8', prorettype => 'int8', proargtypes => 'jsonb',
4417  prosrc => 'jsonb_int8' },
4418{ oid => '3453', descr => 'convert jsonb to float4',
4419  proname => 'float4', prorettype => 'float4', proargtypes => 'jsonb',
4420  prosrc => 'jsonb_float4' },
4421{ oid => '2580', descr => 'convert jsonb to float8',
4422  proname => 'float8', prorettype => 'float8', proargtypes => 'jsonb',
4423  prosrc => 'jsonb_float8' },
4424
4425# formatting
4426{ oid => '1770', descr => 'format timestamp with time zone to text',
4427  proname => 'to_char', provolatile => 's', prorettype => 'text',
4428  proargtypes => 'timestamptz text', prosrc => 'timestamptz_to_char' },
4429{ oid => '1772', descr => 'format numeric to text',
4430  proname => 'to_char', provolatile => 's', prorettype => 'text',
4431  proargtypes => 'numeric text', prosrc => 'numeric_to_char' },
4432{ oid => '1773', descr => 'format int4 to text',
4433  proname => 'to_char', provolatile => 's', prorettype => 'text',
4434  proargtypes => 'int4 text', prosrc => 'int4_to_char' },
4435{ oid => '1774', descr => 'format int8 to text',
4436  proname => 'to_char', provolatile => 's', prorettype => 'text',
4437  proargtypes => 'int8 text', prosrc => 'int8_to_char' },
4438{ oid => '1775', descr => 'format float4 to text',
4439  proname => 'to_char', provolatile => 's', prorettype => 'text',
4440  proargtypes => 'float4 text', prosrc => 'float4_to_char' },
4441{ oid => '1776', descr => 'format float8 to text',
4442  proname => 'to_char', provolatile => 's', prorettype => 'text',
4443  proargtypes => 'float8 text', prosrc => 'float8_to_char' },
4444{ oid => '1777', descr => 'convert text to numeric',
4445  proname => 'to_number', provolatile => 's', prorettype => 'numeric',
4446  proargtypes => 'text text', prosrc => 'numeric_to_number' },
4447{ oid => '1778', descr => 'convert text to timestamp with time zone',
4448  proname => 'to_timestamp', provolatile => 's', prorettype => 'timestamptz',
4449  proargtypes => 'text text', prosrc => 'to_timestamp' },
4450{ oid => '1780', descr => 'convert text to date',
4451  proname => 'to_date', provolatile => 's', prorettype => 'date',
4452  proargtypes => 'text text', prosrc => 'to_date' },
4453{ oid => '1768', descr => 'format interval to text',
4454  proname => 'to_char', provolatile => 's', prorettype => 'text',
4455  proargtypes => 'interval text', prosrc => 'interval_to_char' },
4456
4457{ oid => '1282', descr => 'quote an identifier for usage in a querystring',
4458  proname => 'quote_ident', prorettype => 'text', proargtypes => 'text',
4459  prosrc => 'quote_ident' },
4460{ oid => '1283', descr => 'quote a literal for usage in a querystring',
4461  proname => 'quote_literal', prorettype => 'text', proargtypes => 'text',
4462  prosrc => 'quote_literal' },
4463{ oid => '1285', descr => 'quote a data value for usage in a querystring',
4464  proname => 'quote_literal', prolang => 'sql', provolatile => 's',
4465  prorettype => 'text', proargtypes => 'anyelement',
4466  prosrc => 'select pg_catalog.quote_literal($1::pg_catalog.text)' },
4467{ oid => '1289',
4468  descr => 'quote a possibly-null literal for usage in a querystring',
4469  proname => 'quote_nullable', proisstrict => 'f', prorettype => 'text',
4470  proargtypes => 'text', prosrc => 'quote_nullable' },
4471{ oid => '1290',
4472  descr => 'quote a possibly-null data value for usage in a querystring',
4473  proname => 'quote_nullable', prolang => 'sql', proisstrict => 'f',
4474  provolatile => 's', prorettype => 'text', proargtypes => 'anyelement',
4475  prosrc => 'select pg_catalog.quote_nullable($1::pg_catalog.text)' },
4476
4477{ oid => '1798', descr => 'I/O',
4478  proname => 'oidin', prorettype => 'oid', proargtypes => 'cstring',
4479  prosrc => 'oidin' },
4480{ oid => '1799', descr => 'I/O',
4481  proname => 'oidout', prorettype => 'cstring', proargtypes => 'oid',
4482  prosrc => 'oidout' },
4483
4484{ oid => '3058', descr => 'concatenate values',
4485  proname => 'concat', provariadic => 'any', proisstrict => 'f',
4486  provolatile => 's', prorettype => 'text', proargtypes => 'any',
4487  proallargtypes => '{any}', proargmodes => '{v}', prosrc => 'text_concat' },
4488{ oid => '3059', descr => 'concatenate values with separators',
4489  proname => 'concat_ws', provariadic => 'any', proisstrict => 'f',
4490  provolatile => 's', prorettype => 'text', proargtypes => 'text any',
4491  proallargtypes => '{text,any}', proargmodes => '{i,v}',
4492  prosrc => 'text_concat_ws' },
4493{ oid => '3060', descr => 'extract the first n characters',
4494  proname => 'left', prorettype => 'text', proargtypes => 'text int4',
4495  prosrc => 'text_left' },
4496{ oid => '3061', descr => 'extract the last n characters',
4497  proname => 'right', prorettype => 'text', proargtypes => 'text int4',
4498  prosrc => 'text_right' },
4499{ oid => '3062', descr => 'reverse text',
4500  proname => 'reverse', prorettype => 'text', proargtypes => 'text',
4501  prosrc => 'text_reverse' },
4502{ oid => '3539', descr => 'format text message',
4503  proname => 'format', provariadic => 'any', proisstrict => 'f',
4504  provolatile => 's', prorettype => 'text', proargtypes => 'text any',
4505  proallargtypes => '{text,any}', proargmodes => '{i,v}',
4506  prosrc => 'text_format' },
4507{ oid => '3540', descr => 'format text message',
4508  proname => 'format', proisstrict => 'f', provolatile => 's',
4509  prorettype => 'text', proargtypes => 'text', prosrc => 'text_format_nv' },
4510
4511{ oid => '1810', descr => 'length in bits',
4512  proname => 'bit_length', prolang => 'sql', prorettype => 'int4',
4513  proargtypes => 'bytea', prosrc => 'select pg_catalog.octet_length($1) * 8' },
4514{ oid => '1811', descr => 'length in bits',
4515  proname => 'bit_length', prolang => 'sql', prorettype => 'int4',
4516  proargtypes => 'text', prosrc => 'select pg_catalog.octet_length($1) * 8' },
4517{ oid => '1812', descr => 'length in bits',
4518  proname => 'bit_length', prolang => 'sql', prorettype => 'int4',
4519  proargtypes => 'bit', prosrc => 'select pg_catalog.length($1)' },
4520
4521# Selectivity estimators for LIKE and related operators
4522{ oid => '1814', descr => 'restriction selectivity of ILIKE',
4523  proname => 'iclikesel', provolatile => 's', prorettype => 'float8',
4524  proargtypes => 'internal oid internal int4', prosrc => 'iclikesel' },
4525{ oid => '1815', descr => 'restriction selectivity of NOT ILIKE',
4526  proname => 'icnlikesel', provolatile => 's', prorettype => 'float8',
4527  proargtypes => 'internal oid internal int4', prosrc => 'icnlikesel' },
4528{ oid => '1816', descr => 'join selectivity of ILIKE',
4529  proname => 'iclikejoinsel', provolatile => 's', prorettype => 'float8',
4530  proargtypes => 'internal oid internal int2 internal',
4531  prosrc => 'iclikejoinsel' },
4532{ oid => '1817', descr => 'join selectivity of NOT ILIKE',
4533  proname => 'icnlikejoinsel', provolatile => 's', prorettype => 'float8',
4534  proargtypes => 'internal oid internal int2 internal',
4535  prosrc => 'icnlikejoinsel' },
4536{ oid => '1818', descr => 'restriction selectivity of regex match',
4537  proname => 'regexeqsel', provolatile => 's', prorettype => 'float8',
4538  proargtypes => 'internal oid internal int4', prosrc => 'regexeqsel' },
4539{ oid => '1819', descr => 'restriction selectivity of LIKE',
4540  proname => 'likesel', provolatile => 's', prorettype => 'float8',
4541  proargtypes => 'internal oid internal int4', prosrc => 'likesel' },
4542{ oid => '1820',
4543  descr => 'restriction selectivity of case-insensitive regex match',
4544  proname => 'icregexeqsel', provolatile => 's', prorettype => 'float8',
4545  proargtypes => 'internal oid internal int4', prosrc => 'icregexeqsel' },
4546{ oid => '1821', descr => 'restriction selectivity of regex non-match',
4547  proname => 'regexnesel', provolatile => 's', prorettype => 'float8',
4548  proargtypes => 'internal oid internal int4', prosrc => 'regexnesel' },
4549{ oid => '1822', descr => 'restriction selectivity of NOT LIKE',
4550  proname => 'nlikesel', provolatile => 's', prorettype => 'float8',
4551  proargtypes => 'internal oid internal int4', prosrc => 'nlikesel' },
4552{ oid => '1823',
4553  descr => 'restriction selectivity of case-insensitive regex non-match',
4554  proname => 'icregexnesel', provolatile => 's', prorettype => 'float8',
4555  proargtypes => 'internal oid internal int4', prosrc => 'icregexnesel' },
4556{ oid => '1824', descr => 'join selectivity of regex match',
4557  proname => 'regexeqjoinsel', provolatile => 's', prorettype => 'float8',
4558  proargtypes => 'internal oid internal int2 internal',
4559  prosrc => 'regexeqjoinsel' },
4560{ oid => '1825', descr => 'join selectivity of LIKE',
4561  proname => 'likejoinsel', provolatile => 's', prorettype => 'float8',
4562  proargtypes => 'internal oid internal int2 internal',
4563  prosrc => 'likejoinsel' },
4564{ oid => '1826', descr => 'join selectivity of case-insensitive regex match',
4565  proname => 'icregexeqjoinsel', provolatile => 's', prorettype => 'float8',
4566  proargtypes => 'internal oid internal int2 internal',
4567  prosrc => 'icregexeqjoinsel' },
4568{ oid => '1827', descr => 'join selectivity of regex non-match',
4569  proname => 'regexnejoinsel', provolatile => 's', prorettype => 'float8',
4570  proargtypes => 'internal oid internal int2 internal',
4571  prosrc => 'regexnejoinsel' },
4572{ oid => '1828', descr => 'join selectivity of NOT LIKE',
4573  proname => 'nlikejoinsel', provolatile => 's', prorettype => 'float8',
4574  proargtypes => 'internal oid internal int2 internal',
4575  prosrc => 'nlikejoinsel' },
4576{ oid => '1829',
4577  descr => 'join selectivity of case-insensitive regex non-match',
4578  proname => 'icregexnejoinsel', provolatile => 's', prorettype => 'float8',
4579  proargtypes => 'internal oid internal int2 internal',
4580  prosrc => 'icregexnejoinsel' },
4581{ oid => '3437', descr => 'restriction selectivity of exact prefix',
4582  proname => 'prefixsel', provolatile => 's', prorettype => 'float8',
4583  proargtypes => 'internal oid internal int4', prosrc => 'prefixsel' },
4584{ oid => '3438', descr => 'join selectivity of exact prefix',
4585  proname => 'prefixjoinsel', provolatile => 's', prorettype => 'float8',
4586  proargtypes => 'internal oid internal int2 internal',
4587  prosrc => 'prefixjoinsel' },
4588
4589# Aggregate-related functions
4590{ oid => '1830', descr => 'aggregate final function',
4591  proname => 'float8_avg', prorettype => 'float8', proargtypes => '_float8',
4592  prosrc => 'float8_avg' },
4593{ oid => '2512', descr => 'aggregate final function',
4594  proname => 'float8_var_pop', prorettype => 'float8', proargtypes => '_float8',
4595  prosrc => 'float8_var_pop' },
4596{ oid => '1831', descr => 'aggregate final function',
4597  proname => 'float8_var_samp', prorettype => 'float8',
4598  proargtypes => '_float8', prosrc => 'float8_var_samp' },
4599{ oid => '2513', descr => 'aggregate final function',
4600  proname => 'float8_stddev_pop', prorettype => 'float8',
4601  proargtypes => '_float8', prosrc => 'float8_stddev_pop' },
4602{ oid => '1832', descr => 'aggregate final function',
4603  proname => 'float8_stddev_samp', prorettype => 'float8',
4604  proargtypes => '_float8', prosrc => 'float8_stddev_samp' },
4605{ oid => '1833', descr => 'aggregate transition function',
4606  proname => 'numeric_accum', proisstrict => 'f', prorettype => 'internal',
4607  proargtypes => 'internal numeric', prosrc => 'numeric_accum' },
4608{ oid => '3341', descr => 'aggregate combine function',
4609  proname => 'numeric_combine', proisstrict => 'f', prorettype => 'internal',
4610  proargtypes => 'internal internal', prosrc => 'numeric_combine' },
4611{ oid => '2858', descr => 'aggregate transition function',
4612  proname => 'numeric_avg_accum', proisstrict => 'f', prorettype => 'internal',
4613  proargtypes => 'internal numeric', prosrc => 'numeric_avg_accum' },
4614{ oid => '3337', descr => 'aggregate combine function',
4615  proname => 'numeric_avg_combine', proisstrict => 'f',
4616  prorettype => 'internal', proargtypes => 'internal internal',
4617  prosrc => 'numeric_avg_combine' },
4618{ oid => '2740', descr => 'aggregate serial function',
4619  proname => 'numeric_avg_serialize', prorettype => 'bytea',
4620  proargtypes => 'internal', prosrc => 'numeric_avg_serialize' },
4621{ oid => '2741', descr => 'aggregate deserial function',
4622  proname => 'numeric_avg_deserialize', prorettype => 'internal',
4623  proargtypes => 'bytea internal', prosrc => 'numeric_avg_deserialize' },
4624{ oid => '3335', descr => 'aggregate serial function',
4625  proname => 'numeric_serialize', prorettype => 'bytea',
4626  proargtypes => 'internal', prosrc => 'numeric_serialize' },
4627{ oid => '3336', descr => 'aggregate deserial function',
4628  proname => 'numeric_deserialize', prorettype => 'internal',
4629  proargtypes => 'bytea internal', prosrc => 'numeric_deserialize' },
4630{ oid => '3548', descr => 'aggregate transition function',
4631  proname => 'numeric_accum_inv', proisstrict => 'f', prorettype => 'internal',
4632  proargtypes => 'internal numeric', prosrc => 'numeric_accum_inv' },
4633{ oid => '1834', descr => 'aggregate transition function',
4634  proname => 'int2_accum', proisstrict => 'f', prorettype => 'internal',
4635  proargtypes => 'internal int2', prosrc => 'int2_accum' },
4636{ oid => '1835', descr => 'aggregate transition function',
4637  proname => 'int4_accum', proisstrict => 'f', prorettype => 'internal',
4638  proargtypes => 'internal int4', prosrc => 'int4_accum' },
4639{ oid => '1836', descr => 'aggregate transition function',
4640  proname => 'int8_accum', proisstrict => 'f', prorettype => 'internal',
4641  proargtypes => 'internal int8', prosrc => 'int8_accum' },
4642{ oid => '3338', descr => 'aggregate combine function',
4643  proname => 'numeric_poly_combine', proisstrict => 'f',
4644  prorettype => 'internal', proargtypes => 'internal internal',
4645  prosrc => 'numeric_poly_combine' },
4646{ oid => '3339', descr => 'aggregate serial function',
4647  proname => 'numeric_poly_serialize', prorettype => 'bytea',
4648  proargtypes => 'internal', prosrc => 'numeric_poly_serialize' },
4649{ oid => '3340', descr => 'aggregate deserial function',
4650  proname => 'numeric_poly_deserialize', prorettype => 'internal',
4651  proargtypes => 'bytea internal', prosrc => 'numeric_poly_deserialize' },
4652{ oid => '2746', descr => 'aggregate transition function',
4653  proname => 'int8_avg_accum', proisstrict => 'f', prorettype => 'internal',
4654  proargtypes => 'internal int8', prosrc => 'int8_avg_accum' },
4655{ oid => '3567', descr => 'aggregate transition function',
4656  proname => 'int2_accum_inv', proisstrict => 'f', prorettype => 'internal',
4657  proargtypes => 'internal int2', prosrc => 'int2_accum_inv' },
4658{ oid => '3568', descr => 'aggregate transition function',
4659  proname => 'int4_accum_inv', proisstrict => 'f', prorettype => 'internal',
4660  proargtypes => 'internal int4', prosrc => 'int4_accum_inv' },
4661{ oid => '3569', descr => 'aggregate transition function',
4662  proname => 'int8_accum_inv', proisstrict => 'f', prorettype => 'internal',
4663  proargtypes => 'internal int8', prosrc => 'int8_accum_inv' },
4664{ oid => '3387', descr => 'aggregate transition function',
4665  proname => 'int8_avg_accum_inv', proisstrict => 'f', prorettype => 'internal',
4666  proargtypes => 'internal int8', prosrc => 'int8_avg_accum_inv' },
4667{ oid => '2785', descr => 'aggregate combine function',
4668  proname => 'int8_avg_combine', proisstrict => 'f', prorettype => 'internal',
4669  proargtypes => 'internal internal', prosrc => 'int8_avg_combine' },
4670{ oid => '2786', descr => 'aggregate serial function',
4671  proname => 'int8_avg_serialize', prorettype => 'bytea',
4672  proargtypes => 'internal', prosrc => 'int8_avg_serialize' },
4673{ oid => '2787', descr => 'aggregate deserial function',
4674  proname => 'int8_avg_deserialize', prorettype => 'internal',
4675  proargtypes => 'bytea internal', prosrc => 'int8_avg_deserialize' },
4676{ oid => '3324', descr => 'aggregate combine function',
4677  proname => 'int4_avg_combine', prorettype => '_int8',
4678  proargtypes => '_int8 _int8', prosrc => 'int4_avg_combine' },
4679{ oid => '3178', descr => 'aggregate final function',
4680  proname => 'numeric_sum', proisstrict => 'f', prorettype => 'numeric',
4681  proargtypes => 'internal', prosrc => 'numeric_sum' },
4682{ oid => '1837', descr => 'aggregate final function',
4683  proname => 'numeric_avg', proisstrict => 'f', prorettype => 'numeric',
4684  proargtypes => 'internal', prosrc => 'numeric_avg' },
4685{ oid => '2514', descr => 'aggregate final function',
4686  proname => 'numeric_var_pop', proisstrict => 'f', prorettype => 'numeric',
4687  proargtypes => 'internal', prosrc => 'numeric_var_pop' },
4688{ oid => '1838', descr => 'aggregate final function',
4689  proname => 'numeric_var_samp', proisstrict => 'f', prorettype => 'numeric',
4690  proargtypes => 'internal', prosrc => 'numeric_var_samp' },
4691{ oid => '2596', descr => 'aggregate final function',
4692  proname => 'numeric_stddev_pop', proisstrict => 'f', prorettype => 'numeric',
4693  proargtypes => 'internal', prosrc => 'numeric_stddev_pop' },
4694{ oid => '1839', descr => 'aggregate final function',
4695  proname => 'numeric_stddev_samp', proisstrict => 'f', prorettype => 'numeric',
4696  proargtypes => 'internal', prosrc => 'numeric_stddev_samp' },
4697{ oid => '1840', descr => 'aggregate transition function',
4698  proname => 'int2_sum', proisstrict => 'f', prorettype => 'int8',
4699  proargtypes => 'int8 int2', prosrc => 'int2_sum' },
4700{ oid => '1841', descr => 'aggregate transition function',
4701  proname => 'int4_sum', proisstrict => 'f', prorettype => 'int8',
4702  proargtypes => 'int8 int4', prosrc => 'int4_sum' },
4703{ oid => '1842', descr => 'aggregate transition function',
4704  proname => 'int8_sum', proisstrict => 'f', prorettype => 'numeric',
4705  proargtypes => 'numeric int8', prosrc => 'int8_sum' },
4706{ oid => '3388', descr => 'aggregate final function',
4707  proname => 'numeric_poly_sum', proisstrict => 'f', prorettype => 'numeric',
4708  proargtypes => 'internal', prosrc => 'numeric_poly_sum' },
4709{ oid => '3389', descr => 'aggregate final function',
4710  proname => 'numeric_poly_avg', proisstrict => 'f', prorettype => 'numeric',
4711  proargtypes => 'internal', prosrc => 'numeric_poly_avg' },
4712{ oid => '3390', descr => 'aggregate final function',
4713  proname => 'numeric_poly_var_pop', proisstrict => 'f',
4714  prorettype => 'numeric', proargtypes => 'internal',
4715  prosrc => 'numeric_poly_var_pop' },
4716{ oid => '3391', descr => 'aggregate final function',
4717  proname => 'numeric_poly_var_samp', proisstrict => 'f',
4718  prorettype => 'numeric', proargtypes => 'internal',
4719  prosrc => 'numeric_poly_var_samp' },
4720{ oid => '3392', descr => 'aggregate final function',
4721  proname => 'numeric_poly_stddev_pop', proisstrict => 'f',
4722  prorettype => 'numeric', proargtypes => 'internal',
4723  prosrc => 'numeric_poly_stddev_pop' },
4724{ oid => '3393', descr => 'aggregate final function',
4725  proname => 'numeric_poly_stddev_samp', proisstrict => 'f',
4726  prorettype => 'numeric', proargtypes => 'internal',
4727  prosrc => 'numeric_poly_stddev_samp' },
4728
4729{ oid => '1843', descr => 'aggregate transition function',
4730  proname => 'interval_accum', prorettype => '_interval',
4731  proargtypes => '_interval interval', prosrc => 'interval_accum' },
4732{ oid => '3325', descr => 'aggregate combine function',
4733  proname => 'interval_combine', prorettype => '_interval',
4734  proargtypes => '_interval _interval', prosrc => 'interval_combine' },
4735{ oid => '3549', descr => 'aggregate transition function',
4736  proname => 'interval_accum_inv', prorettype => '_interval',
4737  proargtypes => '_interval interval', prosrc => 'interval_accum_inv' },
4738{ oid => '1844', descr => 'aggregate final function',
4739  proname => 'interval_avg', prorettype => 'interval',
4740  proargtypes => '_interval', prosrc => 'interval_avg' },
4741{ oid => '1962', descr => 'aggregate transition function',
4742  proname => 'int2_avg_accum', prorettype => '_int8',
4743  proargtypes => '_int8 int2', prosrc => 'int2_avg_accum' },
4744{ oid => '1963', descr => 'aggregate transition function',
4745  proname => 'int4_avg_accum', prorettype => '_int8',
4746  proargtypes => '_int8 int4', prosrc => 'int4_avg_accum' },
4747{ oid => '3570', descr => 'aggregate transition function',
4748  proname => 'int2_avg_accum_inv', prorettype => '_int8',
4749  proargtypes => '_int8 int2', prosrc => 'int2_avg_accum_inv' },
4750{ oid => '3571', descr => 'aggregate transition function',
4751  proname => 'int4_avg_accum_inv', prorettype => '_int8',
4752  proargtypes => '_int8 int4', prosrc => 'int4_avg_accum_inv' },
4753{ oid => '1964', descr => 'aggregate final function',
4754  proname => 'int8_avg', prorettype => 'numeric', proargtypes => '_int8',
4755  prosrc => 'int8_avg' },
4756{ oid => '3572', descr => 'aggregate final function',
4757  proname => 'int2int4_sum', prorettype => 'int8', proargtypes => '_int8',
4758  prosrc => 'int2int4_sum' },
4759{ oid => '2805', descr => 'aggregate transition function',
4760  proname => 'int8inc_float8_float8', prorettype => 'int8',
4761  proargtypes => 'int8 float8 float8', prosrc => 'int8inc_float8_float8' },
4762{ oid => '2806', descr => 'aggregate transition function',
4763  proname => 'float8_regr_accum', prorettype => '_float8',
4764  proargtypes => '_float8 float8 float8', prosrc => 'float8_regr_accum' },
4765{ oid => '3342', descr => 'aggregate combine function',
4766  proname => 'float8_regr_combine', prorettype => '_float8',
4767  proargtypes => '_float8 _float8', prosrc => 'float8_regr_combine' },
4768{ oid => '2807', descr => 'aggregate final function',
4769  proname => 'float8_regr_sxx', prorettype => 'float8',
4770  proargtypes => '_float8', prosrc => 'float8_regr_sxx' },
4771{ oid => '2808', descr => 'aggregate final function',
4772  proname => 'float8_regr_syy', prorettype => 'float8',
4773  proargtypes => '_float8', prosrc => 'float8_regr_syy' },
4774{ oid => '2809', descr => 'aggregate final function',
4775  proname => 'float8_regr_sxy', prorettype => 'float8',
4776  proargtypes => '_float8', prosrc => 'float8_regr_sxy' },
4777{ oid => '2810', descr => 'aggregate final function',
4778  proname => 'float8_regr_avgx', prorettype => 'float8',
4779  proargtypes => '_float8', prosrc => 'float8_regr_avgx' },
4780{ oid => '2811', descr => 'aggregate final function',
4781  proname => 'float8_regr_avgy', prorettype => 'float8',
4782  proargtypes => '_float8', prosrc => 'float8_regr_avgy' },
4783{ oid => '2812', descr => 'aggregate final function',
4784  proname => 'float8_regr_r2', prorettype => 'float8', proargtypes => '_float8',
4785  prosrc => 'float8_regr_r2' },
4786{ oid => '2813', descr => 'aggregate final function',
4787  proname => 'float8_regr_slope', prorettype => 'float8',
4788  proargtypes => '_float8', prosrc => 'float8_regr_slope' },
4789{ oid => '2814', descr => 'aggregate final function',
4790  proname => 'float8_regr_intercept', prorettype => 'float8',
4791  proargtypes => '_float8', prosrc => 'float8_regr_intercept' },
4792{ oid => '2815', descr => 'aggregate final function',
4793  proname => 'float8_covar_pop', prorettype => 'float8',
4794  proargtypes => '_float8', prosrc => 'float8_covar_pop' },
4795{ oid => '2816', descr => 'aggregate final function',
4796  proname => 'float8_covar_samp', prorettype => 'float8',
4797  proargtypes => '_float8', prosrc => 'float8_covar_samp' },
4798{ oid => '2817', descr => 'aggregate final function',
4799  proname => 'float8_corr', prorettype => 'float8', proargtypes => '_float8',
4800  prosrc => 'float8_corr' },
4801
4802{ oid => '3535', descr => 'aggregate transition function',
4803  proname => 'string_agg_transfn', proisstrict => 'f', prorettype => 'internal',
4804  proargtypes => 'internal text text', prosrc => 'string_agg_transfn' },
4805{ oid => '3536', descr => 'aggregate final function',
4806  proname => 'string_agg_finalfn', proisstrict => 'f', prorettype => 'text',
4807  proargtypes => 'internal', prosrc => 'string_agg_finalfn' },
4808{ oid => '3538', descr => 'concatenate aggregate input into a string',
4809  proname => 'string_agg', prokind => 'a', proisstrict => 'f',
4810  prorettype => 'text', proargtypes => 'text text',
4811  prosrc => 'aggregate_dummy' },
4812{ oid => '3543', descr => 'aggregate transition function',
4813  proname => 'bytea_string_agg_transfn', proisstrict => 'f',
4814  prorettype => 'internal', proargtypes => 'internal bytea bytea',
4815  prosrc => 'bytea_string_agg_transfn' },
4816{ oid => '3544', descr => 'aggregate final function',
4817  proname => 'bytea_string_agg_finalfn', proisstrict => 'f',
4818  prorettype => 'bytea', proargtypes => 'internal',
4819  prosrc => 'bytea_string_agg_finalfn' },
4820{ oid => '3545', descr => 'concatenate aggregate input into a bytea',
4821  proname => 'string_agg', prokind => 'a', proisstrict => 'f',
4822  prorettype => 'bytea', proargtypes => 'bytea bytea',
4823  prosrc => 'aggregate_dummy' },
4824
4825# To ASCII conversion
4826{ oid => '1845', descr => 'encode text from DB encoding to ASCII text',
4827  proname => 'to_ascii', prorettype => 'text', proargtypes => 'text',
4828  prosrc => 'to_ascii_default' },
4829{ oid => '1846', descr => 'encode text from encoding to ASCII text',
4830  proname => 'to_ascii', prorettype => 'text', proargtypes => 'text int4',
4831  prosrc => 'to_ascii_enc' },
4832{ oid => '1847', descr => 'encode text from encoding to ASCII text',
4833  proname => 'to_ascii', prorettype => 'text', proargtypes => 'text name',
4834  prosrc => 'to_ascii_encname' },
4835
4836{ oid => '1848',
4837  proname => 'interval_pl_time', prolang => 'sql', prorettype => 'time',
4838  proargtypes => 'interval time', prosrc => 'select $2 + $1' },
4839
4840{ oid => '1850',
4841  proname => 'int28eq', proleakproof => 't', prorettype => 'bool',
4842  proargtypes => 'int2 int8', prosrc => 'int28eq' },
4843{ oid => '1851',
4844  proname => 'int28ne', proleakproof => 't', prorettype => 'bool',
4845  proargtypes => 'int2 int8', prosrc => 'int28ne' },
4846{ oid => '1852',
4847  proname => 'int28lt', proleakproof => 't', prorettype => 'bool',
4848  proargtypes => 'int2 int8', prosrc => 'int28lt' },
4849{ oid => '1853',
4850  proname => 'int28gt', proleakproof => 't', prorettype => 'bool',
4851  proargtypes => 'int2 int8', prosrc => 'int28gt' },
4852{ oid => '1854',
4853  proname => 'int28le', proleakproof => 't', prorettype => 'bool',
4854  proargtypes => 'int2 int8', prosrc => 'int28le' },
4855{ oid => '1855',
4856  proname => 'int28ge', proleakproof => 't', prorettype => 'bool',
4857  proargtypes => 'int2 int8', prosrc => 'int28ge' },
4858
4859{ oid => '1856',
4860  proname => 'int82eq', proleakproof => 't', prorettype => 'bool',
4861  proargtypes => 'int8 int2', prosrc => 'int82eq' },
4862{ oid => '1857',
4863  proname => 'int82ne', proleakproof => 't', prorettype => 'bool',
4864  proargtypes => 'int8 int2', prosrc => 'int82ne' },
4865{ oid => '1858',
4866  proname => 'int82lt', proleakproof => 't', prorettype => 'bool',
4867  proargtypes => 'int8 int2', prosrc => 'int82lt' },
4868{ oid => '1859',
4869  proname => 'int82gt', proleakproof => 't', prorettype => 'bool',
4870  proargtypes => 'int8 int2', prosrc => 'int82gt' },
4871{ oid => '1860',
4872  proname => 'int82le', proleakproof => 't', prorettype => 'bool',
4873  proargtypes => 'int8 int2', prosrc => 'int82le' },
4874{ oid => '1861',
4875  proname => 'int82ge', proleakproof => 't', prorettype => 'bool',
4876  proargtypes => 'int8 int2', prosrc => 'int82ge' },
4877
4878{ oid => '1892',
4879  proname => 'int2and', prorettype => 'int2', proargtypes => 'int2 int2',
4880  prosrc => 'int2and' },
4881{ oid => '1893',
4882  proname => 'int2or', prorettype => 'int2', proargtypes => 'int2 int2',
4883  prosrc => 'int2or' },
4884{ oid => '1894',
4885  proname => 'int2xor', prorettype => 'int2', proargtypes => 'int2 int2',
4886  prosrc => 'int2xor' },
4887{ oid => '1895',
4888  proname => 'int2not', prorettype => 'int2', proargtypes => 'int2',
4889  prosrc => 'int2not' },
4890{ oid => '1896',
4891  proname => 'int2shl', prorettype => 'int2', proargtypes => 'int2 int4',
4892  prosrc => 'int2shl' },
4893{ oid => '1897',
4894  proname => 'int2shr', prorettype => 'int2', proargtypes => 'int2 int4',
4895  prosrc => 'int2shr' },
4896
4897{ oid => '1898',
4898  proname => 'int4and', prorettype => 'int4', proargtypes => 'int4 int4',
4899  prosrc => 'int4and' },
4900{ oid => '1899',
4901  proname => 'int4or', prorettype => 'int4', proargtypes => 'int4 int4',
4902  prosrc => 'int4or' },
4903{ oid => '1900',
4904  proname => 'int4xor', prorettype => 'int4', proargtypes => 'int4 int4',
4905  prosrc => 'int4xor' },
4906{ oid => '1901',
4907  proname => 'int4not', prorettype => 'int4', proargtypes => 'int4',
4908  prosrc => 'int4not' },
4909{ oid => '1902',
4910  proname => 'int4shl', prorettype => 'int4', proargtypes => 'int4 int4',
4911  prosrc => 'int4shl' },
4912{ oid => '1903',
4913  proname => 'int4shr', prorettype => 'int4', proargtypes => 'int4 int4',
4914  prosrc => 'int4shr' },
4915
4916{ oid => '1904',
4917  proname => 'int8and', prorettype => 'int8', proargtypes => 'int8 int8',
4918  prosrc => 'int8and' },
4919{ oid => '1905',
4920  proname => 'int8or', prorettype => 'int8', proargtypes => 'int8 int8',
4921  prosrc => 'int8or' },
4922{ oid => '1906',
4923  proname => 'int8xor', prorettype => 'int8', proargtypes => 'int8 int8',
4924  prosrc => 'int8xor' },
4925{ oid => '1907',
4926  proname => 'int8not', prorettype => 'int8', proargtypes => 'int8',
4927  prosrc => 'int8not' },
4928{ oid => '1908',
4929  proname => 'int8shl', prorettype => 'int8', proargtypes => 'int8 int4',
4930  prosrc => 'int8shl' },
4931{ oid => '1909',
4932  proname => 'int8shr', prorettype => 'int8', proargtypes => 'int8 int4',
4933  prosrc => 'int8shr' },
4934
4935{ oid => '1910',
4936  proname => 'int8up', prorettype => 'int8', proargtypes => 'int8',
4937  prosrc => 'int8up' },
4938{ oid => '1911',
4939  proname => 'int2up', prorettype => 'int2', proargtypes => 'int2',
4940  prosrc => 'int2up' },
4941{ oid => '1912',
4942  proname => 'int4up', prorettype => 'int4', proargtypes => 'int4',
4943  prosrc => 'int4up' },
4944{ oid => '1913',
4945  proname => 'float4up', prorettype => 'float4', proargtypes => 'float4',
4946  prosrc => 'float4up' },
4947{ oid => '1914',
4948  proname => 'float8up', prorettype => 'float8', proargtypes => 'float8',
4949  prosrc => 'float8up' },
4950{ oid => '1915',
4951  proname => 'numeric_uplus', prorettype => 'numeric', proargtypes => 'numeric',
4952  prosrc => 'numeric_uplus' },
4953
4954{ oid => '1922', descr => 'user privilege on relation by username, rel name',
4955  proname => 'has_table_privilege', provolatile => 's', prorettype => 'bool',
4956  proargtypes => 'name text text', prosrc => 'has_table_privilege_name_name' },
4957{ oid => '1923', descr => 'user privilege on relation by username, rel oid',
4958  proname => 'has_table_privilege', provolatile => 's', prorettype => 'bool',
4959  proargtypes => 'name oid text', prosrc => 'has_table_privilege_name_id' },
4960{ oid => '1924', descr => 'user privilege on relation by user oid, rel name',
4961  proname => 'has_table_privilege', provolatile => 's', prorettype => 'bool',
4962  proargtypes => 'oid text text', prosrc => 'has_table_privilege_id_name' },
4963{ oid => '1925', descr => 'user privilege on relation by user oid, rel oid',
4964  proname => 'has_table_privilege', provolatile => 's', prorettype => 'bool',
4965  proargtypes => 'oid oid text', prosrc => 'has_table_privilege_id_id' },
4966{ oid => '1926', descr => 'current user privilege on relation by rel name',
4967  proname => 'has_table_privilege', provolatile => 's', prorettype => 'bool',
4968  proargtypes => 'text text', prosrc => 'has_table_privilege_name' },
4969{ oid => '1927', descr => 'current user privilege on relation by rel oid',
4970  proname => 'has_table_privilege', provolatile => 's', prorettype => 'bool',
4971  proargtypes => 'oid text', prosrc => 'has_table_privilege_id' },
4972
4973{ oid => '2181', descr => 'user privilege on sequence by username, seq name',
4974  proname => 'has_sequence_privilege', provolatile => 's', prorettype => 'bool',
4975  proargtypes => 'name text text',
4976  prosrc => 'has_sequence_privilege_name_name' },
4977{ oid => '2182', descr => 'user privilege on sequence by username, seq oid',
4978  proname => 'has_sequence_privilege', provolatile => 's', prorettype => 'bool',
4979  proargtypes => 'name oid text', prosrc => 'has_sequence_privilege_name_id' },
4980{ oid => '2183', descr => 'user privilege on sequence by user oid, seq name',
4981  proname => 'has_sequence_privilege', provolatile => 's', prorettype => 'bool',
4982  proargtypes => 'oid text text', prosrc => 'has_sequence_privilege_id_name' },
4983{ oid => '2184', descr => 'user privilege on sequence by user oid, seq oid',
4984  proname => 'has_sequence_privilege', provolatile => 's', prorettype => 'bool',
4985  proargtypes => 'oid oid text', prosrc => 'has_sequence_privilege_id_id' },
4986{ oid => '2185', descr => 'current user privilege on sequence by seq name',
4987  proname => 'has_sequence_privilege', provolatile => 's', prorettype => 'bool',
4988  proargtypes => 'text text', prosrc => 'has_sequence_privilege_name' },
4989{ oid => '2186', descr => 'current user privilege on sequence by seq oid',
4990  proname => 'has_sequence_privilege', provolatile => 's', prorettype => 'bool',
4991  proargtypes => 'oid text', prosrc => 'has_sequence_privilege_id' },
4992
4993{ oid => '3012',
4994  descr => 'user privilege on column by username, rel name, col name',
4995  proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool',
4996  proargtypes => 'name text text text',
4997  prosrc => 'has_column_privilege_name_name_name' },
4998{ oid => '3013',
4999  descr => 'user privilege on column by username, rel name, col attnum',
5000  proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool',
5001  proargtypes => 'name text int2 text',
5002  prosrc => 'has_column_privilege_name_name_attnum' },
5003{ oid => '3014',
5004  descr => 'user privilege on column by username, rel oid, col name',
5005  proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool',
5006  proargtypes => 'name oid text text',
5007  prosrc => 'has_column_privilege_name_id_name' },
5008{ oid => '3015',
5009  descr => 'user privilege on column by username, rel oid, col attnum',
5010  proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool',
5011  proargtypes => 'name oid int2 text',
5012  prosrc => 'has_column_privilege_name_id_attnum' },
5013{ oid => '3016',
5014  descr => 'user privilege on column by user oid, rel name, col name',
5015  proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool',
5016  proargtypes => 'oid text text text',
5017  prosrc => 'has_column_privilege_id_name_name' },
5018{ oid => '3017',
5019  descr => 'user privilege on column by user oid, rel name, col attnum',
5020  proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool',
5021  proargtypes => 'oid text int2 text',
5022  prosrc => 'has_column_privilege_id_name_attnum' },
5023{ oid => '3018',
5024  descr => 'user privilege on column by user oid, rel oid, col name',
5025  proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool',
5026  proargtypes => 'oid oid text text',
5027  prosrc => 'has_column_privilege_id_id_name' },
5028{ oid => '3019',
5029  descr => 'user privilege on column by user oid, rel oid, col attnum',
5030  proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool',
5031  proargtypes => 'oid oid int2 text',
5032  prosrc => 'has_column_privilege_id_id_attnum' },
5033{ oid => '3020',
5034  descr => 'current user privilege on column by rel name, col name',
5035  proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool',
5036  proargtypes => 'text text text', prosrc => 'has_column_privilege_name_name' },
5037{ oid => '3021',
5038  descr => 'current user privilege on column by rel name, col attnum',
5039  proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool',
5040  proargtypes => 'text int2 text',
5041  prosrc => 'has_column_privilege_name_attnum' },
5042{ oid => '3022',
5043  descr => 'current user privilege on column by rel oid, col name',
5044  proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool',
5045  proargtypes => 'oid text text', prosrc => 'has_column_privilege_id_name' },
5046{ oid => '3023',
5047  descr => 'current user privilege on column by rel oid, col attnum',
5048  proname => 'has_column_privilege', provolatile => 's', prorettype => 'bool',
5049  proargtypes => 'oid int2 text', prosrc => 'has_column_privilege_id_attnum' },
5050
5051{ oid => '3024',
5052  descr => 'user privilege on any column by username, rel name',
5053  proname => 'has_any_column_privilege', procost => '10', provolatile => 's',
5054  prorettype => 'bool', proargtypes => 'name text text',
5055  prosrc => 'has_any_column_privilege_name_name' },
5056{ oid => '3025', descr => 'user privilege on any column by username, rel oid',
5057  proname => 'has_any_column_privilege', procost => '10', provolatile => 's',
5058  prorettype => 'bool', proargtypes => 'name oid text',
5059  prosrc => 'has_any_column_privilege_name_id' },
5060{ oid => '3026',
5061  descr => 'user privilege on any column by user oid, rel name',
5062  proname => 'has_any_column_privilege', procost => '10', provolatile => 's',
5063  prorettype => 'bool', proargtypes => 'oid text text',
5064  prosrc => 'has_any_column_privilege_id_name' },
5065{ oid => '3027', descr => 'user privilege on any column by user oid, rel oid',
5066  proname => 'has_any_column_privilege', procost => '10', provolatile => 's',
5067  prorettype => 'bool', proargtypes => 'oid oid text',
5068  prosrc => 'has_any_column_privilege_id_id' },
5069{ oid => '3028', descr => 'current user privilege on any column by rel name',
5070  proname => 'has_any_column_privilege', procost => '10', provolatile => 's',
5071  prorettype => 'bool', proargtypes => 'text text',
5072  prosrc => 'has_any_column_privilege_name' },
5073{ oid => '3029', descr => 'current user privilege on any column by rel oid',
5074  proname => 'has_any_column_privilege', procost => '10', provolatile => 's',
5075  prorettype => 'bool', proargtypes => 'oid text',
5076  prosrc => 'has_any_column_privilege_id' },
5077
5078{ oid => '3355', descr => 'I/O',
5079  proname => 'pg_ndistinct_in', prorettype => 'pg_ndistinct',
5080  proargtypes => 'cstring', prosrc => 'pg_ndistinct_in' },
5081{ oid => '3356', descr => 'I/O',
5082  proname => 'pg_ndistinct_out', prorettype => 'cstring',
5083  proargtypes => 'pg_ndistinct', prosrc => 'pg_ndistinct_out' },
5084{ oid => '3357', descr => 'I/O',
5085  proname => 'pg_ndistinct_recv', provolatile => 's',
5086  prorettype => 'pg_ndistinct', proargtypes => 'internal',
5087  prosrc => 'pg_ndistinct_recv' },
5088{ oid => '3358', descr => 'I/O',
5089  proname => 'pg_ndistinct_send', provolatile => 's', prorettype => 'bytea',
5090  proargtypes => 'pg_ndistinct', prosrc => 'pg_ndistinct_send' },
5091
5092{ oid => '3404', descr => 'I/O',
5093  proname => 'pg_dependencies_in', prorettype => 'pg_dependencies',
5094  proargtypes => 'cstring', prosrc => 'pg_dependencies_in' },
5095{ oid => '3405', descr => 'I/O',
5096  proname => 'pg_dependencies_out', prorettype => 'cstring',
5097  proargtypes => 'pg_dependencies', prosrc => 'pg_dependencies_out' },
5098{ oid => '3406', descr => 'I/O',
5099  proname => 'pg_dependencies_recv', provolatile => 's',
5100  prorettype => 'pg_dependencies', proargtypes => 'internal',
5101  prosrc => 'pg_dependencies_recv' },
5102{ oid => '3407', descr => 'I/O',
5103  proname => 'pg_dependencies_send', provolatile => 's', prorettype => 'bytea',
5104  proargtypes => 'pg_dependencies', prosrc => 'pg_dependencies_send' },
5105
5106{ oid => '5018', descr => 'I/O',
5107  proname => 'pg_mcv_list_in', prorettype => 'pg_mcv_list',
5108  proargtypes => 'cstring', prosrc => 'pg_mcv_list_in' },
5109{ oid => '5019', descr => 'I/O',
5110  proname => 'pg_mcv_list_out', prorettype => 'cstring',
5111  proargtypes => 'pg_mcv_list', prosrc => 'pg_mcv_list_out' },
5112{ oid => '5020', descr => 'I/O',
5113  proname => 'pg_mcv_list_recv', provolatile => 's',
5114  prorettype => 'pg_mcv_list', proargtypes => 'internal',
5115  prosrc => 'pg_mcv_list_recv' },
5116{ oid => '5021', descr => 'I/O',
5117  proname => 'pg_mcv_list_send', provolatile => 's', prorettype => 'bytea',
5118  proargtypes => 'pg_mcv_list', prosrc => 'pg_mcv_list_send' },
5119
5120{ oid => '3427', descr => 'details about MCV list items',
5121  proname => 'pg_mcv_list_items', prorows => '1000', proretset => 't',
5122  provolatile => 's', prorettype => 'record', proargtypes => 'pg_mcv_list',
5123  proallargtypes => '{pg_mcv_list,int4,_text,_bool,float8,float8}',
5124  proargmodes => '{i,o,o,o,o,o}',
5125  proargnames => '{mcv_list,index,values,nulls,frequency,base_frequency}',
5126  prosrc => 'pg_stats_ext_mcvlist_items' },
5127
5128{ oid => '1928', descr => 'statistics: number of scans done for table/index',
5129  proname => 'pg_stat_get_numscans', provolatile => 's', proparallel => 'r',
5130  prorettype => 'int8', proargtypes => 'oid',
5131  prosrc => 'pg_stat_get_numscans' },
5132{ oid => '1929', descr => 'statistics: number of tuples read by seqscan',
5133  proname => 'pg_stat_get_tuples_returned', provolatile => 's',
5134  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5135  prosrc => 'pg_stat_get_tuples_returned' },
5136{ oid => '1930', descr => 'statistics: number of tuples fetched by idxscan',
5137  proname => 'pg_stat_get_tuples_fetched', provolatile => 's',
5138  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5139  prosrc => 'pg_stat_get_tuples_fetched' },
5140{ oid => '1931', descr => 'statistics: number of tuples inserted',
5141  proname => 'pg_stat_get_tuples_inserted', provolatile => 's',
5142  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5143  prosrc => 'pg_stat_get_tuples_inserted' },
5144{ oid => '1932', descr => 'statistics: number of tuples updated',
5145  proname => 'pg_stat_get_tuples_updated', provolatile => 's',
5146  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5147  prosrc => 'pg_stat_get_tuples_updated' },
5148{ oid => '1933', descr => 'statistics: number of tuples deleted',
5149  proname => 'pg_stat_get_tuples_deleted', provolatile => 's',
5150  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5151  prosrc => 'pg_stat_get_tuples_deleted' },
5152{ oid => '1972', descr => 'statistics: number of tuples hot updated',
5153  proname => 'pg_stat_get_tuples_hot_updated', provolatile => 's',
5154  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5155  prosrc => 'pg_stat_get_tuples_hot_updated' },
5156{ oid => '2878', descr => 'statistics: number of live tuples',
5157  proname => 'pg_stat_get_live_tuples', provolatile => 's', proparallel => 'r',
5158  prorettype => 'int8', proargtypes => 'oid',
5159  prosrc => 'pg_stat_get_live_tuples' },
5160{ oid => '2879', descr => 'statistics: number of dead tuples',
5161  proname => 'pg_stat_get_dead_tuples', provolatile => 's', proparallel => 'r',
5162  prorettype => 'int8', proargtypes => 'oid',
5163  prosrc => 'pg_stat_get_dead_tuples' },
5164{ oid => '3177',
5165  descr => 'statistics: number of tuples changed since last analyze',
5166  proname => 'pg_stat_get_mod_since_analyze', provolatile => 's',
5167  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5168  prosrc => 'pg_stat_get_mod_since_analyze' },
5169{ oid => '5053',
5170  descr => 'statistics: number of tuples inserted since last vacuum',
5171  proname => 'pg_stat_get_ins_since_vacuum', provolatile => 's',
5172  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5173  prosrc => 'pg_stat_get_ins_since_vacuum' },
5174{ oid => '1934', descr => 'statistics: number of blocks fetched',
5175  proname => 'pg_stat_get_blocks_fetched', provolatile => 's',
5176  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5177  prosrc => 'pg_stat_get_blocks_fetched' },
5178{ oid => '1935', descr => 'statistics: number of blocks found in cache',
5179  proname => 'pg_stat_get_blocks_hit', provolatile => 's', proparallel => 'r',
5180  prorettype => 'int8', proargtypes => 'oid',
5181  prosrc => 'pg_stat_get_blocks_hit' },
5182{ oid => '2781', descr => 'statistics: last manual vacuum time for a table',
5183  proname => 'pg_stat_get_last_vacuum_time', provolatile => 's',
5184  proparallel => 'r', prorettype => 'timestamptz', proargtypes => 'oid',
5185  prosrc => 'pg_stat_get_last_vacuum_time' },
5186{ oid => '2782', descr => 'statistics: last auto vacuum time for a table',
5187  proname => 'pg_stat_get_last_autovacuum_time', provolatile => 's',
5188  proparallel => 'r', prorettype => 'timestamptz', proargtypes => 'oid',
5189  prosrc => 'pg_stat_get_last_autovacuum_time' },
5190{ oid => '2783', descr => 'statistics: last manual analyze time for a table',
5191  proname => 'pg_stat_get_last_analyze_time', provolatile => 's',
5192  proparallel => 'r', prorettype => 'timestamptz', proargtypes => 'oid',
5193  prosrc => 'pg_stat_get_last_analyze_time' },
5194{ oid => '2784', descr => 'statistics: last auto analyze time for a table',
5195  proname => 'pg_stat_get_last_autoanalyze_time', provolatile => 's',
5196  proparallel => 'r', prorettype => 'timestamptz', proargtypes => 'oid',
5197  prosrc => 'pg_stat_get_last_autoanalyze_time' },
5198{ oid => '3054', descr => 'statistics: number of manual vacuums for a table',
5199  proname => 'pg_stat_get_vacuum_count', provolatile => 's', proparallel => 'r',
5200  prorettype => 'int8', proargtypes => 'oid',
5201  prosrc => 'pg_stat_get_vacuum_count' },
5202{ oid => '3055', descr => 'statistics: number of auto vacuums for a table',
5203  proname => 'pg_stat_get_autovacuum_count', provolatile => 's',
5204  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5205  prosrc => 'pg_stat_get_autovacuum_count' },
5206{ oid => '3056', descr => 'statistics: number of manual analyzes for a table',
5207  proname => 'pg_stat_get_analyze_count', provolatile => 's',
5208  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5209  prosrc => 'pg_stat_get_analyze_count' },
5210{ oid => '3057', descr => 'statistics: number of auto analyzes for a table',
5211  proname => 'pg_stat_get_autoanalyze_count', provolatile => 's',
5212  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5213  prosrc => 'pg_stat_get_autoanalyze_count' },
5214{ oid => '1936', descr => 'statistics: currently active backend IDs',
5215  proname => 'pg_stat_get_backend_idset', prorows => '100', proretset => 't',
5216  provolatile => 's', proparallel => 'r', prorettype => 'int4',
5217  proargtypes => '', prosrc => 'pg_stat_get_backend_idset' },
5218{ oid => '2022',
5219  descr => 'statistics: information about currently active backends',
5220  proname => 'pg_stat_get_activity', prorows => '100', proisstrict => 'f',
5221  proretset => 't', provolatile => 's', proparallel => 'r',
5222  prorettype => 'record', proargtypes => 'int4',
5223  proallargtypes => '{int4,oid,int4,oid,text,text,text,text,text,timestamptz,timestamptz,timestamptz,timestamptz,inet,text,int4,xid,xid,text,bool,text,text,int4,bool,text,numeric,text,bool,text,bool,int4}',
5224  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}',
5225  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,sslcompression,ssl_client_dn,ssl_client_serial,ssl_issuer_dn,gss_auth,gss_princ,gss_enc,leader_pid}',
5226  prosrc => 'pg_stat_get_activity' },
5227{ oid => '3318',
5228  descr => 'statistics: information about progress of backends running maintenance command',
5229  proname => 'pg_stat_get_progress_info', prorows => '100', proretset => 't',
5230  provolatile => 's', proparallel => 'r', prorettype => 'record',
5231  proargtypes => 'text',
5232  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}',
5233  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}',
5234  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}',
5235  prosrc => 'pg_stat_get_progress_info' },
5236{ oid => '3099',
5237  descr => 'statistics: information about currently active replication',
5238  proname => 'pg_stat_get_wal_senders', prorows => '10', proisstrict => 'f',
5239  proretset => 't', provolatile => 's', proparallel => 'r',
5240  prorettype => 'record', proargtypes => '',
5241  proallargtypes => '{int4,text,pg_lsn,pg_lsn,pg_lsn,pg_lsn,interval,interval,interval,int4,text,timestamptz}',
5242  proargmodes => '{o,o,o,o,o,o,o,o,o,o,o,o}',
5243  proargnames => '{pid,state,sent_lsn,write_lsn,flush_lsn,replay_lsn,write_lag,flush_lag,replay_lag,sync_priority,sync_state,reply_time}',
5244  prosrc => 'pg_stat_get_wal_senders' },
5245{ oid => '3317', descr => 'statistics: information about WAL receiver',
5246  proname => 'pg_stat_get_wal_receiver', proisstrict => 'f', provolatile => 's',
5247  proparallel => 'r', prorettype => 'record', proargtypes => '',
5248  proallargtypes => '{int4,text,pg_lsn,int4,pg_lsn,pg_lsn,int4,timestamptz,timestamptz,pg_lsn,timestamptz,text,text,int4,text}',
5249  proargmodes => '{o,o,o,o,o,o,o,o,o,o,o,o,o,o,o}',
5250  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}',
5251  prosrc => 'pg_stat_get_wal_receiver' },
5252{ oid => '6118', descr => 'statistics: information about subscription',
5253  proname => 'pg_stat_get_subscription', proisstrict => 'f', provolatile => 's',
5254  proparallel => 'r', prorettype => 'record', proargtypes => 'oid',
5255  proallargtypes => '{oid,oid,oid,int4,pg_lsn,timestamptz,timestamptz,pg_lsn,timestamptz}',
5256  proargmodes => '{i,o,o,o,o,o,o,o,o}',
5257  proargnames => '{subid,subid,relid,pid,received_lsn,last_msg_send_time,last_msg_receipt_time,latest_end_lsn,latest_end_time}',
5258  prosrc => 'pg_stat_get_subscription' },
5259{ oid => '2026', descr => 'statistics: current backend PID',
5260  proname => 'pg_backend_pid', provolatile => 's', proparallel => 'r',
5261  prorettype => 'int4', proargtypes => '', prosrc => 'pg_backend_pid' },
5262{ oid => '1937', descr => 'statistics: PID of backend',
5263  proname => 'pg_stat_get_backend_pid', provolatile => 's', proparallel => 'r',
5264  prorettype => 'int4', proargtypes => 'int4',
5265  prosrc => 'pg_stat_get_backend_pid' },
5266{ oid => '1938', descr => 'statistics: database ID of backend',
5267  proname => 'pg_stat_get_backend_dbid', provolatile => 's', proparallel => 'r',
5268  prorettype => 'oid', proargtypes => 'int4',
5269  prosrc => 'pg_stat_get_backend_dbid' },
5270{ oid => '1939', descr => 'statistics: user ID of backend',
5271  proname => 'pg_stat_get_backend_userid', provolatile => 's',
5272  proparallel => 'r', prorettype => 'oid', proargtypes => 'int4',
5273  prosrc => 'pg_stat_get_backend_userid' },
5274{ oid => '1940', descr => 'statistics: current query of backend',
5275  proname => 'pg_stat_get_backend_activity', provolatile => 's',
5276  proparallel => 'r', prorettype => 'text', proargtypes => 'int4',
5277  prosrc => 'pg_stat_get_backend_activity' },
5278{ oid => '2788',
5279  descr => 'statistics: wait event type on which backend is currently waiting',
5280  proname => 'pg_stat_get_backend_wait_event_type', provolatile => 's',
5281  proparallel => 'r', prorettype => 'text', proargtypes => 'int4',
5282  prosrc => 'pg_stat_get_backend_wait_event_type' },
5283{ oid => '2853',
5284  descr => 'statistics: wait event on which backend is currently waiting',
5285  proname => 'pg_stat_get_backend_wait_event', provolatile => 's',
5286  proparallel => 'r', prorettype => 'text', proargtypes => 'int4',
5287  prosrc => 'pg_stat_get_backend_wait_event' },
5288{ oid => '2094',
5289  descr => 'statistics: start time for current query of backend',
5290  proname => 'pg_stat_get_backend_activity_start', provolatile => 's',
5291  proparallel => 'r', prorettype => 'timestamptz', proargtypes => 'int4',
5292  prosrc => 'pg_stat_get_backend_activity_start' },
5293{ oid => '2857',
5294  descr => 'statistics: start time for backend\'s current transaction',
5295  proname => 'pg_stat_get_backend_xact_start', provolatile => 's',
5296  proparallel => 'r', prorettype => 'timestamptz', proargtypes => 'int4',
5297  prosrc => 'pg_stat_get_backend_xact_start' },
5298{ oid => '1391',
5299  descr => 'statistics: start time for current backend session',
5300  proname => 'pg_stat_get_backend_start', provolatile => 's',
5301  proparallel => 'r', prorettype => 'timestamptz', proargtypes => 'int4',
5302  prosrc => 'pg_stat_get_backend_start' },
5303{ oid => '1392',
5304  descr => 'statistics: address of client connected to backend',
5305  proname => 'pg_stat_get_backend_client_addr', provolatile => 's',
5306  proparallel => 'r', prorettype => 'inet', proargtypes => 'int4',
5307  prosrc => 'pg_stat_get_backend_client_addr' },
5308{ oid => '1393',
5309  descr => 'statistics: port number of client connected to backend',
5310  proname => 'pg_stat_get_backend_client_port', provolatile => 's',
5311  proparallel => 'r', prorettype => 'int4', proargtypes => 'int4',
5312  prosrc => 'pg_stat_get_backend_client_port' },
5313{ oid => '1941', descr => 'statistics: number of backends in database',
5314  proname => 'pg_stat_get_db_numbackends', provolatile => 's',
5315  proparallel => 'r', prorettype => 'int4', proargtypes => 'oid',
5316  prosrc => 'pg_stat_get_db_numbackends' },
5317{ oid => '1942', descr => 'statistics: transactions committed',
5318  proname => 'pg_stat_get_db_xact_commit', provolatile => 's',
5319  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5320  prosrc => 'pg_stat_get_db_xact_commit' },
5321{ oid => '1943', descr => 'statistics: transactions rolled back',
5322  proname => 'pg_stat_get_db_xact_rollback', provolatile => 's',
5323  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5324  prosrc => 'pg_stat_get_db_xact_rollback' },
5325{ oid => '1944', descr => 'statistics: blocks fetched for database',
5326  proname => 'pg_stat_get_db_blocks_fetched', provolatile => 's',
5327  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5328  prosrc => 'pg_stat_get_db_blocks_fetched' },
5329{ oid => '1945', descr => 'statistics: blocks found in cache for database',
5330  proname => 'pg_stat_get_db_blocks_hit', provolatile => 's',
5331  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5332  prosrc => 'pg_stat_get_db_blocks_hit' },
5333{ oid => '2758', descr => 'statistics: tuples returned for database',
5334  proname => 'pg_stat_get_db_tuples_returned', provolatile => 's',
5335  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5336  prosrc => 'pg_stat_get_db_tuples_returned' },
5337{ oid => '2759', descr => 'statistics: tuples fetched for database',
5338  proname => 'pg_stat_get_db_tuples_fetched', provolatile => 's',
5339  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5340  prosrc => 'pg_stat_get_db_tuples_fetched' },
5341{ oid => '2760', descr => 'statistics: tuples inserted in database',
5342  proname => 'pg_stat_get_db_tuples_inserted', provolatile => 's',
5343  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5344  prosrc => 'pg_stat_get_db_tuples_inserted' },
5345{ oid => '2761', descr => 'statistics: tuples updated in database',
5346  proname => 'pg_stat_get_db_tuples_updated', provolatile => 's',
5347  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5348  prosrc => 'pg_stat_get_db_tuples_updated' },
5349{ oid => '2762', descr => 'statistics: tuples deleted in database',
5350  proname => 'pg_stat_get_db_tuples_deleted', provolatile => 's',
5351  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5352  prosrc => 'pg_stat_get_db_tuples_deleted' },
5353{ oid => '3065',
5354  descr => 'statistics: recovery conflicts in database caused by drop tablespace',
5355  proname => 'pg_stat_get_db_conflict_tablespace', provolatile => 's',
5356  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5357  prosrc => 'pg_stat_get_db_conflict_tablespace' },
5358{ oid => '3066',
5359  descr => 'statistics: recovery conflicts in database caused by relation lock',
5360  proname => 'pg_stat_get_db_conflict_lock', provolatile => 's',
5361  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5362  prosrc => 'pg_stat_get_db_conflict_lock' },
5363{ oid => '3067',
5364  descr => 'statistics: recovery conflicts in database caused by snapshot expiry',
5365  proname => 'pg_stat_get_db_conflict_snapshot', provolatile => 's',
5366  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5367  prosrc => 'pg_stat_get_db_conflict_snapshot' },
5368{ oid => '3068',
5369  descr => 'statistics: recovery conflicts in database caused by shared buffer pin',
5370  proname => 'pg_stat_get_db_conflict_bufferpin', provolatile => 's',
5371  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5372  prosrc => 'pg_stat_get_db_conflict_bufferpin' },
5373{ oid => '3069',
5374  descr => 'statistics: recovery conflicts in database caused by buffer deadlock',
5375  proname => 'pg_stat_get_db_conflict_startup_deadlock', provolatile => 's',
5376  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5377  prosrc => 'pg_stat_get_db_conflict_startup_deadlock' },
5378{ oid => '3070', descr => 'statistics: recovery conflicts in database',
5379  proname => 'pg_stat_get_db_conflict_all', provolatile => 's',
5380  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5381  prosrc => 'pg_stat_get_db_conflict_all' },
5382{ oid => '3152', descr => 'statistics: deadlocks detected in database',
5383  proname => 'pg_stat_get_db_deadlocks', provolatile => 's', proparallel => 'r',
5384  prorettype => 'int8', proargtypes => 'oid',
5385  prosrc => 'pg_stat_get_db_deadlocks' },
5386{ oid => '3426',
5387  descr => 'statistics: checksum failures detected in database',
5388  proname => 'pg_stat_get_db_checksum_failures', provolatile => 's',
5389  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5390  prosrc => 'pg_stat_get_db_checksum_failures' },
5391{ oid => '3428',
5392  descr => 'statistics: when last checksum failure was detected in database',
5393  proname => 'pg_stat_get_db_checksum_last_failure', provolatile => 's',
5394  proparallel => 'r', prorettype => 'timestamptz', proargtypes => 'oid',
5395  prosrc => 'pg_stat_get_db_checksum_last_failure' },
5396{ oid => '3074', descr => 'statistics: last reset for a database',
5397  proname => 'pg_stat_get_db_stat_reset_time', provolatile => 's',
5398  proparallel => 'r', prorettype => 'timestamptz', proargtypes => 'oid',
5399  prosrc => 'pg_stat_get_db_stat_reset_time' },
5400{ oid => '3150', descr => 'statistics: number of temporary files written',
5401  proname => 'pg_stat_get_db_temp_files', provolatile => 's',
5402  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5403  prosrc => 'pg_stat_get_db_temp_files' },
5404{ oid => '3151',
5405  descr => 'statistics: number of bytes in temporary files written',
5406  proname => 'pg_stat_get_db_temp_bytes', provolatile => 's',
5407  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5408  prosrc => 'pg_stat_get_db_temp_bytes' },
5409{ oid => '2844', descr => 'statistics: block read time, in milliseconds',
5410  proname => 'pg_stat_get_db_blk_read_time', provolatile => 's',
5411  proparallel => 'r', prorettype => 'float8', proargtypes => 'oid',
5412  prosrc => 'pg_stat_get_db_blk_read_time' },
5413{ oid => '2845', descr => 'statistics: block write time, in milliseconds',
5414  proname => 'pg_stat_get_db_blk_write_time', provolatile => 's',
5415  proparallel => 'r', prorettype => 'float8', proargtypes => 'oid',
5416  prosrc => 'pg_stat_get_db_blk_write_time' },
5417{ oid => '3195', descr => 'statistics: information about WAL archiver',
5418  proname => 'pg_stat_get_archiver', proisstrict => 'f', provolatile => 's',
5419  proparallel => 'r', prorettype => 'record', proargtypes => '',
5420  proallargtypes => '{int8,text,timestamptz,int8,text,timestamptz,timestamptz}',
5421  proargmodes => '{o,o,o,o,o,o,o}',
5422  proargnames => '{archived_count,last_archived_wal,last_archived_time,failed_count,last_failed_wal,last_failed_time,stats_reset}',
5423  prosrc => 'pg_stat_get_archiver' },
5424{ oid => '2769',
5425  descr => 'statistics: number of timed checkpoints started by the bgwriter',
5426  proname => 'pg_stat_get_bgwriter_timed_checkpoints', provolatile => 's',
5427  proparallel => 'r', prorettype => 'int8', proargtypes => '',
5428  prosrc => 'pg_stat_get_bgwriter_timed_checkpoints' },
5429{ oid => '2770',
5430  descr => 'statistics: number of backend requested checkpoints started by the bgwriter',
5431  proname => 'pg_stat_get_bgwriter_requested_checkpoints', provolatile => 's',
5432  proparallel => 'r', prorettype => 'int8', proargtypes => '',
5433  prosrc => 'pg_stat_get_bgwriter_requested_checkpoints' },
5434{ oid => '2771',
5435  descr => 'statistics: number of buffers written by the bgwriter during checkpoints',
5436  proname => 'pg_stat_get_bgwriter_buf_written_checkpoints', provolatile => 's',
5437  proparallel => 'r', prorettype => 'int8', proargtypes => '',
5438  prosrc => 'pg_stat_get_bgwriter_buf_written_checkpoints' },
5439{ oid => '2772',
5440  descr => 'statistics: number of buffers written by the bgwriter for cleaning dirty buffers',
5441  proname => 'pg_stat_get_bgwriter_buf_written_clean', provolatile => 's',
5442  proparallel => 'r', prorettype => 'int8', proargtypes => '',
5443  prosrc => 'pg_stat_get_bgwriter_buf_written_clean' },
5444{ oid => '2773',
5445  descr => 'statistics: number of times the bgwriter stopped processing when it had written too many buffers while cleaning',
5446  proname => 'pg_stat_get_bgwriter_maxwritten_clean', provolatile => 's',
5447  proparallel => 'r', prorettype => 'int8', proargtypes => '',
5448  prosrc => 'pg_stat_get_bgwriter_maxwritten_clean' },
5449{ oid => '3075', descr => 'statistics: last reset for the bgwriter',
5450  proname => 'pg_stat_get_bgwriter_stat_reset_time', provolatile => 's',
5451  proparallel => 'r', prorettype => 'timestamptz', proargtypes => '',
5452  prosrc => 'pg_stat_get_bgwriter_stat_reset_time' },
5453{ oid => '3160',
5454  descr => 'statistics: checkpoint time spent writing buffers to disk, in milliseconds',
5455  proname => 'pg_stat_get_checkpoint_write_time', provolatile => 's',
5456  proparallel => 'r', prorettype => 'float8', proargtypes => '',
5457  prosrc => 'pg_stat_get_checkpoint_write_time' },
5458{ oid => '3161',
5459  descr => 'statistics: checkpoint time spent synchronizing buffers to disk, in milliseconds',
5460  proname => 'pg_stat_get_checkpoint_sync_time', provolatile => 's',
5461  proparallel => 'r', prorettype => 'float8', proargtypes => '',
5462  prosrc => 'pg_stat_get_checkpoint_sync_time' },
5463{ oid => '2775', descr => 'statistics: number of buffers written by backends',
5464  proname => 'pg_stat_get_buf_written_backend', provolatile => 's',
5465  proparallel => 'r', prorettype => 'int8', proargtypes => '',
5466  prosrc => 'pg_stat_get_buf_written_backend' },
5467{ oid => '3063',
5468  descr => 'statistics: number of backend buffer writes that did their own fsync',
5469  proname => 'pg_stat_get_buf_fsync_backend', provolatile => 's',
5470  proparallel => 'r', prorettype => 'int8', proargtypes => '',
5471  prosrc => 'pg_stat_get_buf_fsync_backend' },
5472{ oid => '2859', descr => 'statistics: number of buffer allocations',
5473  proname => 'pg_stat_get_buf_alloc', provolatile => 's', proparallel => 'r',
5474  prorettype => 'int8', proargtypes => '', prosrc => 'pg_stat_get_buf_alloc' },
5475
5476{ oid => '2306', descr => 'statistics: information about SLRU caches',
5477  proname => 'pg_stat_get_slru', prorows => '100', proisstrict => 'f',
5478  proretset => 't', provolatile => 's', proparallel => 'r',
5479  prorettype => 'record', proargtypes => '',
5480  proallargtypes => '{text,int8,int8,int8,int8,int8,int8,int8,timestamptz}',
5481  proargmodes => '{o,o,o,o,o,o,o,o,o}',
5482  proargnames => '{name,blks_zeroed,blks_hit,blks_read,blks_written,blks_exists,flushes,truncates,stats_reset}',
5483  prosrc => 'pg_stat_get_slru' },
5484
5485{ oid => '2978', descr => 'statistics: number of function calls',
5486  proname => 'pg_stat_get_function_calls', provolatile => 's',
5487  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5488  prosrc => 'pg_stat_get_function_calls' },
5489{ oid => '2979',
5490  descr => 'statistics: total execution time of function, in milliseconds',
5491  proname => 'pg_stat_get_function_total_time', provolatile => 's',
5492  proparallel => 'r', prorettype => 'float8', proargtypes => 'oid',
5493  prosrc => 'pg_stat_get_function_total_time' },
5494{ oid => '2980',
5495  descr => 'statistics: self execution time of function, in milliseconds',
5496  proname => 'pg_stat_get_function_self_time', provolatile => 's',
5497  proparallel => 'r', prorettype => 'float8', proargtypes => 'oid',
5498  prosrc => 'pg_stat_get_function_self_time' },
5499
5500{ oid => '3037',
5501  descr => 'statistics: number of scans done for table/index in current transaction',
5502  proname => 'pg_stat_get_xact_numscans', provolatile => 'v',
5503  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5504  prosrc => 'pg_stat_get_xact_numscans' },
5505{ oid => '3038',
5506  descr => 'statistics: number of tuples read by seqscan in current transaction',
5507  proname => 'pg_stat_get_xact_tuples_returned', provolatile => 'v',
5508  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5509  prosrc => 'pg_stat_get_xact_tuples_returned' },
5510{ oid => '3039',
5511  descr => 'statistics: number of tuples fetched by idxscan in current transaction',
5512  proname => 'pg_stat_get_xact_tuples_fetched', provolatile => 'v',
5513  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5514  prosrc => 'pg_stat_get_xact_tuples_fetched' },
5515{ oid => '3040',
5516  descr => 'statistics: number of tuples inserted in current transaction',
5517  proname => 'pg_stat_get_xact_tuples_inserted', provolatile => 'v',
5518  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5519  prosrc => 'pg_stat_get_xact_tuples_inserted' },
5520{ oid => '3041',
5521  descr => 'statistics: number of tuples updated in current transaction',
5522  proname => 'pg_stat_get_xact_tuples_updated', provolatile => 'v',
5523  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5524  prosrc => 'pg_stat_get_xact_tuples_updated' },
5525{ oid => '3042',
5526  descr => 'statistics: number of tuples deleted in current transaction',
5527  proname => 'pg_stat_get_xact_tuples_deleted', provolatile => 'v',
5528  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5529  prosrc => 'pg_stat_get_xact_tuples_deleted' },
5530{ oid => '3043',
5531  descr => 'statistics: number of tuples hot updated in current transaction',
5532  proname => 'pg_stat_get_xact_tuples_hot_updated', provolatile => 'v',
5533  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5534  prosrc => 'pg_stat_get_xact_tuples_hot_updated' },
5535{ oid => '3044',
5536  descr => 'statistics: number of blocks fetched in current transaction',
5537  proname => 'pg_stat_get_xact_blocks_fetched', provolatile => 'v',
5538  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5539  prosrc => 'pg_stat_get_xact_blocks_fetched' },
5540{ oid => '3045',
5541  descr => 'statistics: number of blocks found in cache in current transaction',
5542  proname => 'pg_stat_get_xact_blocks_hit', provolatile => 'v',
5543  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5544  prosrc => 'pg_stat_get_xact_blocks_hit' },
5545{ oid => '3046',
5546  descr => 'statistics: number of function calls in current transaction',
5547  proname => 'pg_stat_get_xact_function_calls', provolatile => 'v',
5548  proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
5549  prosrc => 'pg_stat_get_xact_function_calls' },
5550{ oid => '3047',
5551  descr => 'statistics: total execution time of function in current transaction, in milliseconds',
5552  proname => 'pg_stat_get_xact_function_total_time', provolatile => 'v',
5553  proparallel => 'r', prorettype => 'float8', proargtypes => 'oid',
5554  prosrc => 'pg_stat_get_xact_function_total_time' },
5555{ oid => '3048',
5556  descr => 'statistics: self execution time of function in current transaction, in milliseconds',
5557  proname => 'pg_stat_get_xact_function_self_time', provolatile => 'v',
5558  proparallel => 'r', prorettype => 'float8', proargtypes => 'oid',
5559  prosrc => 'pg_stat_get_xact_function_self_time' },
5560
5561{ oid => '3788',
5562  descr => 'statistics: timestamp of the current statistics snapshot',
5563  proname => 'pg_stat_get_snapshot_timestamp', provolatile => 's',
5564  proparallel => 'r', prorettype => 'timestamptz', proargtypes => '',
5565  prosrc => 'pg_stat_get_snapshot_timestamp' },
5566{ oid => '2230',
5567  descr => 'statistics: discard current transaction\'s statistics snapshot',
5568  proname => 'pg_stat_clear_snapshot', proisstrict => 'f', provolatile => 'v',
5569  proparallel => 'r', prorettype => 'void', proargtypes => '',
5570  prosrc => 'pg_stat_clear_snapshot' },
5571{ oid => '2274',
5572  descr => 'statistics: reset collected statistics for current database',
5573  proname => 'pg_stat_reset', proisstrict => 'f', provolatile => 'v',
5574  prorettype => 'void', proargtypes => '', prosrc => 'pg_stat_reset' },
5575{ oid => '3775',
5576  descr => 'statistics: reset collected statistics shared across the cluster',
5577  proname => 'pg_stat_reset_shared', provolatile => 'v', prorettype => 'void',
5578  proargtypes => 'text', prosrc => 'pg_stat_reset_shared' },
5579{ oid => '3776',
5580  descr => 'statistics: reset collected statistics for a single table or index in the current database',
5581  proname => 'pg_stat_reset_single_table_counters', provolatile => 'v',
5582  prorettype => 'void', proargtypes => 'oid',
5583  prosrc => 'pg_stat_reset_single_table_counters' },
5584{ oid => '3777',
5585  descr => 'statistics: reset collected statistics for a single function in the current database',
5586  proname => 'pg_stat_reset_single_function_counters', provolatile => 'v',
5587  prorettype => 'void', proargtypes => 'oid',
5588  prosrc => 'pg_stat_reset_single_function_counters' },
5589{ oid => '2307',
5590  descr => 'statistics: reset collected statistics for a single SLRU',
5591  proname => 'pg_stat_reset_slru', proisstrict => 'f', provolatile => 'v',
5592  prorettype => 'void', proargtypes => 'text', prosrc => 'pg_stat_reset_slru' },
5593
5594{ oid => '3163', descr => 'current trigger depth',
5595  proname => 'pg_trigger_depth', provolatile => 's', proparallel => 'r',
5596  prorettype => 'int4', proargtypes => '', prosrc => 'pg_trigger_depth' },
5597
5598{ oid => '3778', descr => 'tablespace location',
5599  proname => 'pg_tablespace_location', provolatile => 's', prorettype => 'text',
5600  proargtypes => 'oid', prosrc => 'pg_tablespace_location' },
5601
5602{ oid => '1946',
5603  descr => 'convert bytea value into some ascii-only text string',
5604  proname => 'encode', prorettype => 'text', proargtypes => 'bytea text',
5605  prosrc => 'binary_encode' },
5606{ oid => '1947',
5607  descr => 'convert ascii-encoded text string into bytea value',
5608  proname => 'decode', prorettype => 'bytea', proargtypes => 'text text',
5609  prosrc => 'binary_decode' },
5610
5611{ oid => '1948',
5612  proname => 'byteaeq', proleakproof => 't', prorettype => 'bool',
5613  proargtypes => 'bytea bytea', prosrc => 'byteaeq' },
5614{ oid => '1949',
5615  proname => 'bytealt', proleakproof => 't', prorettype => 'bool',
5616  proargtypes => 'bytea bytea', prosrc => 'bytealt' },
5617{ oid => '1950',
5618  proname => 'byteale', proleakproof => 't', prorettype => 'bool',
5619  proargtypes => 'bytea bytea', prosrc => 'byteale' },
5620{ oid => '1951',
5621  proname => 'byteagt', proleakproof => 't', prorettype => 'bool',
5622  proargtypes => 'bytea bytea', prosrc => 'byteagt' },
5623{ oid => '1952',
5624  proname => 'byteage', proleakproof => 't', prorettype => 'bool',
5625  proargtypes => 'bytea bytea', prosrc => 'byteage' },
5626{ oid => '1953',
5627  proname => 'byteane', proleakproof => 't', prorettype => 'bool',
5628  proargtypes => 'bytea bytea', prosrc => 'byteane' },
5629{ oid => '1954', descr => 'less-equal-greater',
5630  proname => 'byteacmp', proleakproof => 't', prorettype => 'int4',
5631  proargtypes => 'bytea bytea', prosrc => 'byteacmp' },
5632{ oid => '3331', descr => 'sort support',
5633  proname => 'bytea_sortsupport', prorettype => 'void',
5634  proargtypes => 'internal', prosrc => 'bytea_sortsupport' },
5635
5636{ oid => '3917', descr => 'planner support for timestamp length coercion',
5637  proname => 'timestamp_support', prorettype => 'internal',
5638  proargtypes => 'internal', prosrc => 'timestamp_support' },
5639{ oid => '3944', descr => 'planner support for time length coercion',
5640  proname => 'time_support', prorettype => 'internal',
5641  proargtypes => 'internal', prosrc => 'time_support' },
5642
5643{ oid => '1961', descr => 'adjust timestamp precision',
5644  proname => 'timestamp', prosupport => 'timestamp_support',
5645  prorettype => 'timestamp', proargtypes => 'timestamp int4',
5646  prosrc => 'timestamp_scale' },
5647
5648{ oid => '1965', descr => 'larger of two',
5649  proname => 'oidlarger', prorettype => 'oid', proargtypes => 'oid oid',
5650  prosrc => 'oidlarger' },
5651{ oid => '1966', descr => 'smaller of two',
5652  proname => 'oidsmaller', prorettype => 'oid', proargtypes => 'oid oid',
5653  prosrc => 'oidsmaller' },
5654
5655{ oid => '1967', descr => 'adjust timestamptz precision',
5656  proname => 'timestamptz', prosupport => 'timestamp_support',
5657  prorettype => 'timestamptz', proargtypes => 'timestamptz int4',
5658  prosrc => 'timestamptz_scale' },
5659{ oid => '1968', descr => 'adjust time precision',
5660  proname => 'time', prosupport => 'time_support', prorettype => 'time',
5661  proargtypes => 'time int4', prosrc => 'time_scale' },
5662{ oid => '1969', descr => 'adjust time with time zone precision',
5663  proname => 'timetz', prosupport => 'time_support', prorettype => 'timetz',
5664  proargtypes => 'timetz int4', prosrc => 'timetz_scale' },
5665
5666{ oid => '2003',
5667  proname => 'textanycat', prolang => 'sql', provolatile => 's',
5668  prorettype => 'text', proargtypes => 'text anynonarray',
5669  prosrc => 'select $1 || $2::pg_catalog.text' },
5670{ oid => '2004',
5671  proname => 'anytextcat', prolang => 'sql', provolatile => 's',
5672  prorettype => 'text', proargtypes => 'anynonarray text',
5673  prosrc => 'select $1::pg_catalog.text || $2' },
5674
5675{ oid => '2005',
5676  proname => 'bytealike', prosupport => 'textlike_support',
5677  prorettype => 'bool', proargtypes => 'bytea bytea', prosrc => 'bytealike' },
5678{ oid => '2006',
5679  proname => 'byteanlike', prorettype => 'bool', proargtypes => 'bytea bytea',
5680  prosrc => 'byteanlike' },
5681{ oid => '2007', descr => 'matches LIKE expression',
5682  proname => 'like', prosupport => 'textlike_support', prorettype => 'bool',
5683  proargtypes => 'bytea bytea', prosrc => 'bytealike' },
5684{ oid => '2008', descr => 'does not match LIKE expression',
5685  proname => 'notlike', prorettype => 'bool', proargtypes => 'bytea bytea',
5686  prosrc => 'byteanlike' },
5687{ oid => '2009', descr => 'convert LIKE pattern to use backslash escapes',
5688  proname => 'like_escape', prorettype => 'bytea', proargtypes => 'bytea bytea',
5689  prosrc => 'like_escape_bytea' },
5690{ oid => '2010', descr => 'octet length',
5691  proname => 'length', prorettype => 'int4', proargtypes => 'bytea',
5692  prosrc => 'byteaoctetlen' },
5693{ oid => '2011',
5694  proname => 'byteacat', prorettype => 'bytea', proargtypes => 'bytea bytea',
5695  prosrc => 'byteacat' },
5696{ oid => '2012', descr => 'extract portion of string',
5697  proname => 'substring', prorettype => 'bytea',
5698  proargtypes => 'bytea int4 int4', prosrc => 'bytea_substr' },
5699{ oid => '2013', descr => 'extract portion of string',
5700  proname => 'substring', prorettype => 'bytea', proargtypes => 'bytea int4',
5701  prosrc => 'bytea_substr_no_len' },
5702{ oid => '2085', descr => 'extract portion of string',
5703  proname => 'substr', prorettype => 'bytea', proargtypes => 'bytea int4 int4',
5704  prosrc => 'bytea_substr' },
5705{ oid => '2086', descr => 'extract portion of string',
5706  proname => 'substr', prorettype => 'bytea', proargtypes => 'bytea int4',
5707  prosrc => 'bytea_substr_no_len' },
5708{ oid => '2014', descr => 'position of substring',
5709  proname => 'position', prorettype => 'int4', proargtypes => 'bytea bytea',
5710  prosrc => 'byteapos' },
5711{ oid => '2015', descr => 'trim both ends of string',
5712  proname => 'btrim', prorettype => 'bytea', proargtypes => 'bytea bytea',
5713  prosrc => 'byteatrim' },
5714
5715{ oid => '2019', descr => 'convert timestamp with time zone to time',
5716  proname => 'time', provolatile => 's', prorettype => 'time',
5717  proargtypes => 'timestamptz', prosrc => 'timestamptz_time' },
5718{ oid => '2020', descr => 'truncate timestamp to specified units',
5719  proname => 'date_trunc', prorettype => 'timestamp',
5720  proargtypes => 'text timestamp', prosrc => 'timestamp_trunc' },
5721{ oid => '2021', descr => 'extract field from timestamp',
5722  proname => 'date_part', prorettype => 'float8',
5723  proargtypes => 'text timestamp', prosrc => 'timestamp_part' },
5724{ oid => '2024', descr => 'convert date to timestamp',
5725  proname => 'timestamp', prorettype => 'timestamp', proargtypes => 'date',
5726  prosrc => 'date_timestamp' },
5727{ oid => '2025', descr => 'convert date and time to timestamp',
5728  proname => 'timestamp', prorettype => 'timestamp', proargtypes => 'date time',
5729  prosrc => 'datetime_timestamp' },
5730{ oid => '2027', descr => 'convert timestamp with time zone to timestamp',
5731  proname => 'timestamp', provolatile => 's', prorettype => 'timestamp',
5732  proargtypes => 'timestamptz', prosrc => 'timestamptz_timestamp' },
5733{ oid => '2028', descr => 'convert timestamp to timestamp with time zone',
5734  proname => 'timestamptz', provolatile => 's', prorettype => 'timestamptz',
5735  proargtypes => 'timestamp', prosrc => 'timestamp_timestamptz' },
5736{ oid => '2029', descr => 'convert timestamp to date',
5737  proname => 'date', prorettype => 'date', proargtypes => 'timestamp',
5738  prosrc => 'timestamp_date' },
5739{ oid => '2031',
5740  proname => 'timestamp_mi', prorettype => 'interval',
5741  proargtypes => 'timestamp timestamp', prosrc => 'timestamp_mi' },
5742{ oid => '2032',
5743  proname => 'timestamp_pl_interval', prorettype => 'timestamp',
5744  proargtypes => 'timestamp interval', prosrc => 'timestamp_pl_interval' },
5745{ oid => '2033',
5746  proname => 'timestamp_mi_interval', prorettype => 'timestamp',
5747  proargtypes => 'timestamp interval', prosrc => 'timestamp_mi_interval' },
5748{ oid => '2035', descr => 'smaller of two',
5749  proname => 'timestamp_smaller', prorettype => 'timestamp',
5750  proargtypes => 'timestamp timestamp', prosrc => 'timestamp_smaller' },
5751{ oid => '2036', descr => 'larger of two',
5752  proname => 'timestamp_larger', prorettype => 'timestamp',
5753  proargtypes => 'timestamp timestamp', prosrc => 'timestamp_larger' },
5754{ oid => '2037', descr => 'adjust time with time zone to new zone',
5755  proname => 'timezone', provolatile => 'v', prorettype => 'timetz',
5756  proargtypes => 'text timetz', prosrc => 'timetz_zone' },
5757{ oid => '2038', descr => 'adjust time with time zone to new zone',
5758  proname => 'timezone', prorettype => 'timetz',
5759  proargtypes => 'interval timetz', prosrc => 'timetz_izone' },
5760{ oid => '2039', descr => 'hash',
5761  proname => 'timestamp_hash', prorettype => 'int4', proargtypes => 'timestamp',
5762  prosrc => 'timestamp_hash' },
5763{ oid => '3411', descr => 'hash',
5764  proname => 'timestamp_hash_extended', prorettype => 'int8',
5765  proargtypes => 'timestamp int8', prosrc => 'timestamp_hash_extended' },
5766{ oid => '2041', descr => 'intervals overlap?',
5767  proname => 'overlaps', proisstrict => 'f', prorettype => 'bool',
5768  proargtypes => 'timestamp timestamp timestamp timestamp',
5769  prosrc => 'overlaps_timestamp' },
5770{ oid => '2042', descr => 'intervals overlap?',
5771  proname => 'overlaps', prolang => 'sql', proisstrict => 'f',
5772  prorettype => 'bool', proargtypes => 'timestamp interval timestamp interval',
5773  prosrc => 'select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))' },
5774{ oid => '2043', descr => 'intervals overlap?',
5775  proname => 'overlaps', prolang => 'sql', proisstrict => 'f',
5776  prorettype => 'bool', proargtypes => 'timestamp timestamp timestamp interval',
5777  prosrc => 'select ($1, $2) overlaps ($3, ($3 + $4))' },
5778{ oid => '2044', descr => 'intervals overlap?',
5779  proname => 'overlaps', prolang => 'sql', proisstrict => 'f',
5780  prorettype => 'bool', proargtypes => 'timestamp interval timestamp timestamp',
5781  prosrc => 'select ($1, ($1 + $2)) overlaps ($3, $4)' },
5782{ oid => '2045', descr => 'less-equal-greater',
5783  proname => 'timestamp_cmp', proleakproof => 't', prorettype => 'int4',
5784  proargtypes => 'timestamp timestamp', prosrc => 'timestamp_cmp' },
5785{ oid => '3137', descr => 'sort support',
5786  proname => 'timestamp_sortsupport', prorettype => 'void',
5787  proargtypes => 'internal', prosrc => 'timestamp_sortsupport' },
5788
5789{ oid => '4134', descr => 'window RANGE support',
5790  proname => 'in_range', prorettype => 'bool',
5791  proargtypes => 'timestamp timestamp interval bool bool',
5792  prosrc => 'in_range_timestamp_interval' },
5793{ oid => '4135', descr => 'window RANGE support',
5794  proname => 'in_range', provolatile => 's', prorettype => 'bool',
5795  proargtypes => 'timestamptz timestamptz interval bool bool',
5796  prosrc => 'in_range_timestamptz_interval' },
5797{ oid => '4136', descr => 'window RANGE support',
5798  proname => 'in_range', prorettype => 'bool',
5799  proargtypes => 'interval interval interval bool bool',
5800  prosrc => 'in_range_interval_interval' },
5801{ oid => '4137', descr => 'window RANGE support',
5802  proname => 'in_range', prorettype => 'bool',
5803  proargtypes => 'time time interval bool bool',
5804  prosrc => 'in_range_time_interval' },
5805{ oid => '4138', descr => 'window RANGE support',
5806  proname => 'in_range', prorettype => 'bool',
5807  proargtypes => 'timetz timetz interval bool bool',
5808  prosrc => 'in_range_timetz_interval' },
5809
5810{ oid => '2046', descr => 'convert time with time zone to time',
5811  proname => 'time', prorettype => 'time', proargtypes => 'timetz',
5812  prosrc => 'timetz_time' },
5813{ oid => '2047', descr => 'convert time to time with time zone',
5814  proname => 'timetz', provolatile => 's', prorettype => 'timetz',
5815  proargtypes => 'time', prosrc => 'time_timetz' },
5816{ oid => '2048', descr => 'finite timestamp?',
5817  proname => 'isfinite', prorettype => 'bool', proargtypes => 'timestamp',
5818  prosrc => 'timestamp_finite' },
5819{ oid => '2049', descr => 'format timestamp to text',
5820  proname => 'to_char', provolatile => 's', prorettype => 'text',
5821  proargtypes => 'timestamp text', prosrc => 'timestamp_to_char' },
5822{ oid => '2052',
5823  proname => 'timestamp_eq', proleakproof => 't', prorettype => 'bool',
5824  proargtypes => 'timestamp timestamp', prosrc => 'timestamp_eq' },
5825{ oid => '2053',
5826  proname => 'timestamp_ne', proleakproof => 't', prorettype => 'bool',
5827  proargtypes => 'timestamp timestamp', prosrc => 'timestamp_ne' },
5828{ oid => '2054',
5829  proname => 'timestamp_lt', proleakproof => 't', prorettype => 'bool',
5830  proargtypes => 'timestamp timestamp', prosrc => 'timestamp_lt' },
5831{ oid => '2055',
5832  proname => 'timestamp_le', proleakproof => 't', prorettype => 'bool',
5833  proargtypes => 'timestamp timestamp', prosrc => 'timestamp_le' },
5834{ oid => '2056',
5835  proname => 'timestamp_ge', proleakproof => 't', prorettype => 'bool',
5836  proargtypes => 'timestamp timestamp', prosrc => 'timestamp_ge' },
5837{ oid => '2057',
5838  proname => 'timestamp_gt', proleakproof => 't', prorettype => 'bool',
5839  proargtypes => 'timestamp timestamp', prosrc => 'timestamp_gt' },
5840{ oid => '2058', descr => 'date difference preserving months and years',
5841  proname => 'age', prorettype => 'interval',
5842  proargtypes => 'timestamp timestamp', prosrc => 'timestamp_age' },
5843{ oid => '2059',
5844  descr => 'date difference from today preserving months and years',
5845  proname => 'age', prolang => 'sql', provolatile => 's',
5846  prorettype => 'interval', proargtypes => 'timestamp',
5847  prosrc => 'select pg_catalog.age(cast(current_date as timestamp without time zone), $1)' },
5848
5849{ oid => '2069', descr => 'adjust timestamp to new time zone',
5850  proname => 'timezone', prorettype => 'timestamptz',
5851  proargtypes => 'text timestamp', prosrc => 'timestamp_zone' },
5852{ oid => '2070', descr => 'adjust timestamp to new time zone',
5853  proname => 'timezone', prorettype => 'timestamptz',
5854  proargtypes => 'interval timestamp', prosrc => 'timestamp_izone' },
5855{ oid => '2071',
5856  proname => 'date_pl_interval', prorettype => 'timestamp',
5857  proargtypes => 'date interval', prosrc => 'date_pl_interval' },
5858{ oid => '2072',
5859  proname => 'date_mi_interval', prorettype => 'timestamp',
5860  proargtypes => 'date interval', prosrc => 'date_mi_interval' },
5861
5862{ oid => '2073', descr => 'extract text matching regular expression',
5863  proname => 'substring', prorettype => 'text', proargtypes => 'text text',
5864  prosrc => 'textregexsubstr' },
5865{ oid => '2074', descr => 'extract text matching SQL regular expression',
5866  proname => 'substring', prolang => 'sql', prorettype => 'text',
5867  proargtypes => 'text text text',
5868  prosrc => 'select pg_catalog.substring($1, pg_catalog.similar_to_escape($2, $3))' },
5869
5870{ oid => '2075', descr => 'convert int8 to bitstring',
5871  proname => 'bit', prorettype => 'bit', proargtypes => 'int8 int4',
5872  prosrc => 'bitfromint8' },
5873{ oid => '2076', descr => 'convert bitstring to int8',
5874  proname => 'int8', prorettype => 'int8', proargtypes => 'bit',
5875  prosrc => 'bittoint8' },
5876
5877{ oid => '2077', descr => 'SHOW X as a function',
5878  proname => 'current_setting', provolatile => 's', prorettype => 'text',
5879  proargtypes => 'text', prosrc => 'show_config_by_name' },
5880{ oid => '3294',
5881  descr => 'SHOW X as a function, optionally no error for missing variable',
5882  proname => 'current_setting', provolatile => 's', prorettype => 'text',
5883  proargtypes => 'text bool', prosrc => 'show_config_by_name_missing_ok' },
5884{ oid => '2078', descr => 'SET X as a function',
5885  proname => 'set_config', proisstrict => 'f', provolatile => 'v',
5886  proparallel => 'u', prorettype => 'text', proargtypes => 'text text bool',
5887  prosrc => 'set_config_by_name' },
5888{ oid => '2084', descr => 'SHOW ALL as a function',
5889  proname => 'pg_show_all_settings', prorows => '1000', proretset => 't',
5890  provolatile => 's', prorettype => 'record', proargtypes => '',
5891  proallargtypes => '{text,text,text,text,text,text,text,text,text,text,text,_text,text,text,text,int4,bool}',
5892  proargmodes => '{o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o}',
5893  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}',
5894  prosrc => 'show_all_settings' },
5895{ oid => '3329', descr => 'show config file settings',
5896  proname => 'pg_show_all_file_settings', prorows => '1000', proretset => 't',
5897  provolatile => 'v', prorettype => 'record', proargtypes => '',
5898  proallargtypes => '{text,int4,int4,text,text,bool,text}',
5899  proargmodes => '{o,o,o,o,o,o,o}',
5900  proargnames => '{sourcefile,sourceline,seqno,name,setting,applied,error}',
5901  prosrc => 'show_all_file_settings' },
5902{ oid => '3401', descr => 'show pg_hba.conf rules',
5903  proname => 'pg_hba_file_rules', prorows => '1000', proretset => 't',
5904  provolatile => 'v', prorettype => 'record', proargtypes => '',
5905  proallargtypes => '{int4,text,_text,_text,text,text,text,_text,text}',
5906  proargmodes => '{o,o,o,o,o,o,o,o,o}',
5907  proargnames => '{line_number,type,database,user_name,address,netmask,auth_method,options,error}',
5908  prosrc => 'pg_hba_file_rules' },
5909{ oid => '1371', descr => 'view system lock information',
5910  proname => 'pg_lock_status', prorows => '1000', proretset => 't',
5911  provolatile => 'v', prorettype => 'record', proargtypes => '',
5912  proallargtypes => '{text,oid,oid,int4,int2,text,xid,oid,oid,int2,text,int4,text,bool,bool}',
5913  proargmodes => '{o,o,o,o,o,o,o,o,o,o,o,o,o,o,o}',
5914  proargnames => '{locktype,database,relation,page,tuple,virtualxid,transactionid,classid,objid,objsubid,virtualtransaction,pid,mode,granted,fastpath}',
5915  prosrc => 'pg_lock_status' },
5916{ oid => '2561',
5917  descr => 'get array of PIDs of sessions blocking specified backend PID from acquiring a heavyweight lock',
5918  proname => 'pg_blocking_pids', provolatile => 'v', prorettype => '_int4',
5919  proargtypes => 'int4', prosrc => 'pg_blocking_pids' },
5920{ oid => '3376',
5921  descr => 'get array of PIDs of sessions blocking specified backend PID from acquiring a safe snapshot',
5922  proname => 'pg_safe_snapshot_blocking_pids', provolatile => 'v',
5923  prorettype => '_int4', proargtypes => 'int4',
5924  prosrc => 'pg_safe_snapshot_blocking_pids' },
5925{ oid => '3378', descr => 'isolationtester support function',
5926  proname => 'pg_isolation_test_session_is_blocked', provolatile => 'v',
5927  prorettype => 'bool', proargtypes => 'int4 _int4',
5928  prosrc => 'pg_isolation_test_session_is_blocked' },
5929{ oid => '1065', descr => 'view two-phase transactions',
5930  proname => 'pg_prepared_xact', prorows => '1000', proretset => 't',
5931  provolatile => 'v', prorettype => 'record', proargtypes => '',
5932  proallargtypes => '{xid,text,timestamptz,oid,oid}',
5933  proargmodes => '{o,o,o,o,o}',
5934  proargnames => '{transaction,gid,prepared,ownerid,dbid}',
5935  prosrc => 'pg_prepared_xact' },
5936{ oid => '3819', descr => 'view members of a multixactid',
5937  proname => 'pg_get_multixact_members', prorows => '1000', proretset => 't',
5938  provolatile => 'v', prorettype => 'record', proargtypes => 'xid',
5939  proallargtypes => '{xid,xid,text}', proargmodes => '{i,o,o}',
5940  proargnames => '{multixid,xid,mode}', prosrc => 'pg_get_multixact_members' },
5941
5942{ oid => '3581', descr => 'get commit timestamp of a transaction',
5943  proname => 'pg_xact_commit_timestamp', provolatile => 'v',
5944  prorettype => 'timestamptz', proargtypes => 'xid',
5945  prosrc => 'pg_xact_commit_timestamp' },
5946
5947{ oid => '3583',
5948  descr => 'get transaction Id and commit timestamp of latest transaction commit',
5949  proname => 'pg_last_committed_xact', provolatile => 'v',
5950  prorettype => 'record', proargtypes => '',
5951  proallargtypes => '{xid,timestamptz}', proargmodes => '{o,o}',
5952  proargnames => '{xid,timestamp}', prosrc => 'pg_last_committed_xact' },
5953
5954{ oid => '3537', descr => 'get identification of SQL object',
5955  proname => 'pg_describe_object', provolatile => 's', prorettype => 'text',
5956  proargtypes => 'oid oid int4', prosrc => 'pg_describe_object' },
5957
5958{ oid => '3839',
5959  descr => 'get machine-parseable identification of SQL object',
5960  proname => 'pg_identify_object', provolatile => 's', prorettype => 'record',
5961  proargtypes => 'oid oid int4',
5962  proallargtypes => '{oid,oid,int4,text,text,text,text}',
5963  proargmodes => '{i,i,i,o,o,o,o}',
5964  proargnames => '{classid,objid,objsubid,type,schema,name,identity}',
5965  prosrc => 'pg_identify_object' },
5966
5967{ oid => '3382',
5968  descr => 'get identification of SQL object for pg_get_object_address()',
5969  proname => 'pg_identify_object_as_address', provolatile => 's',
5970  prorettype => 'record', proargtypes => 'oid oid int4',
5971  proallargtypes => '{oid,oid,int4,text,_text,_text}',
5972  proargmodes => '{i,i,i,o,o,o}',
5973  proargnames => '{classid,objid,objsubid,type,object_names,object_args}',
5974  prosrc => 'pg_identify_object_as_address' },
5975
5976{ oid => '3954',
5977  descr => 'get OID-based object address from name/args arrays',
5978  proname => 'pg_get_object_address', provolatile => 's',
5979  prorettype => 'record', proargtypes => 'text _text _text',
5980  proallargtypes => '{text,_text,_text,oid,oid,int4}',
5981  proargmodes => '{i,i,i,o,o,o}',
5982  proargnames => '{type,object_names,object_args,classid,objid,objsubid}',
5983  prosrc => 'pg_get_object_address' },
5984
5985{ oid => '2079', descr => 'is table visible in search path?',
5986  proname => 'pg_table_is_visible', procost => '10', provolatile => 's',
5987  prorettype => 'bool', proargtypes => 'oid', prosrc => 'pg_table_is_visible' },
5988{ oid => '2080', descr => 'is type visible in search path?',
5989  proname => 'pg_type_is_visible', procost => '10', provolatile => 's',
5990  prorettype => 'bool', proargtypes => 'oid', prosrc => 'pg_type_is_visible' },
5991{ oid => '2081', descr => 'is function visible in search path?',
5992  proname => 'pg_function_is_visible', procost => '10', provolatile => 's',
5993  prorettype => 'bool', proargtypes => 'oid',
5994  prosrc => 'pg_function_is_visible' },
5995{ oid => '2082', descr => 'is operator visible in search path?',
5996  proname => 'pg_operator_is_visible', procost => '10', provolatile => 's',
5997  prorettype => 'bool', proargtypes => 'oid',
5998  prosrc => 'pg_operator_is_visible' },
5999{ oid => '2083', descr => 'is opclass visible in search path?',
6000  proname => 'pg_opclass_is_visible', procost => '10', provolatile => 's',
6001  prorettype => 'bool', proargtypes => 'oid',
6002  prosrc => 'pg_opclass_is_visible' },
6003{ oid => '3829', descr => 'is opfamily visible in search path?',
6004  proname => 'pg_opfamily_is_visible', procost => '10', provolatile => 's',
6005  prorettype => 'bool', proargtypes => 'oid',
6006  prosrc => 'pg_opfamily_is_visible' },
6007{ oid => '2093', descr => 'is conversion visible in search path?',
6008  proname => 'pg_conversion_is_visible', procost => '10', provolatile => 's',
6009  prorettype => 'bool', proargtypes => 'oid',
6010  prosrc => 'pg_conversion_is_visible' },
6011{ oid => '3403', descr => 'is statistics object visible in search path?',
6012  proname => 'pg_statistics_obj_is_visible', procost => '10',
6013  provolatile => 's', prorettype => 'bool', proargtypes => 'oid',
6014  prosrc => 'pg_statistics_obj_is_visible' },
6015{ oid => '3756', descr => 'is text search parser visible in search path?',
6016  proname => 'pg_ts_parser_is_visible', procost => '10', provolatile => 's',
6017  prorettype => 'bool', proargtypes => 'oid',
6018  prosrc => 'pg_ts_parser_is_visible' },
6019{ oid => '3757', descr => 'is text search dictionary visible in search path?',
6020  proname => 'pg_ts_dict_is_visible', procost => '10', provolatile => 's',
6021  prorettype => 'bool', proargtypes => 'oid',
6022  prosrc => 'pg_ts_dict_is_visible' },
6023{ oid => '3768', descr => 'is text search template visible in search path?',
6024  proname => 'pg_ts_template_is_visible', procost => '10', provolatile => 's',
6025  prorettype => 'bool', proargtypes => 'oid',
6026  prosrc => 'pg_ts_template_is_visible' },
6027{ oid => '3758',
6028  descr => 'is text search configuration visible in search path?',
6029  proname => 'pg_ts_config_is_visible', procost => '10', provolatile => 's',
6030  prorettype => 'bool', proargtypes => 'oid',
6031  prosrc => 'pg_ts_config_is_visible' },
6032{ oid => '3815', descr => 'is collation visible in search path?',
6033  proname => 'pg_collation_is_visible', procost => '10', provolatile => 's',
6034  prorettype => 'bool', proargtypes => 'oid',
6035  prosrc => 'pg_collation_is_visible' },
6036
6037{ oid => '2854', descr => 'get OID of current session\'s temp schema, if any',
6038  proname => 'pg_my_temp_schema', provolatile => 's', proparallel => 'r',
6039  prorettype => 'oid', proargtypes => '', prosrc => 'pg_my_temp_schema' },
6040{ oid => '2855', descr => 'is schema another session\'s temp schema?',
6041  proname => 'pg_is_other_temp_schema', provolatile => 's',
6042  prorettype => 'bool', proargtypes => 'oid',
6043  prosrc => 'pg_is_other_temp_schema' },
6044
6045{ oid => '2171', descr => 'cancel a server process\' current query',
6046  proname => 'pg_cancel_backend', provolatile => 'v', prorettype => 'bool',
6047  proargtypes => 'int4', prosrc => 'pg_cancel_backend' },
6048{ oid => '2096', descr => 'terminate a server process',
6049  proname => 'pg_terminate_backend', provolatile => 'v', prorettype => 'bool',
6050  proargtypes => 'int4', prosrc => 'pg_terminate_backend' },
6051{ oid => '2172', descr => 'prepare for taking an online backup',
6052  proname => 'pg_start_backup', provolatile => 'v', proparallel => 'r',
6053  prorettype => 'pg_lsn', proargtypes => 'text bool bool',
6054  prosrc => 'pg_start_backup' },
6055{ oid => '2173', descr => 'finish taking an online backup',
6056  proname => 'pg_stop_backup', provolatile => 'v', proparallel => 'r',
6057  prorettype => 'pg_lsn', proargtypes => '', prosrc => 'pg_stop_backup' },
6058{ oid => '2739', descr => 'finish taking an online backup',
6059  proname => 'pg_stop_backup', prorows => '1', proretset => 't',
6060  provolatile => 'v', proparallel => 'r', prorettype => 'record',
6061  proargtypes => 'bool bool', proallargtypes => '{bool,bool,pg_lsn,text,text}',
6062  proargmodes => '{i,i,o,o,o}',
6063  proargnames => '{exclusive,wait_for_archive,lsn,labelfile,spcmapfile}',
6064  prosrc => 'pg_stop_backup_v2' },
6065{ oid => '3813', descr => 'true if server is in online backup',
6066  proname => 'pg_is_in_backup', provolatile => 'v', prorettype => 'bool',
6067  proargtypes => '', prosrc => 'pg_is_in_backup' },
6068{ oid => '3814', descr => 'start time of an online backup',
6069  proname => 'pg_backup_start_time', provolatile => 's',
6070  prorettype => 'timestamptz', proargtypes => '',
6071  prosrc => 'pg_backup_start_time' },
6072{ oid => '3436', descr => 'promote standby server',
6073  proname => 'pg_promote', provolatile => 'v', prorettype => 'bool',
6074  proargtypes => 'bool int4', proargnames => '{wait,wait_seconds}',
6075  prosrc => 'pg_promote' },
6076{ oid => '2848', descr => 'switch to new wal file',
6077  proname => 'pg_switch_wal', provolatile => 'v', prorettype => 'pg_lsn',
6078  proargtypes => '', prosrc => 'pg_switch_wal' },
6079{ oid => '3098', descr => 'create a named restore point',
6080  proname => 'pg_create_restore_point', provolatile => 'v',
6081  prorettype => 'pg_lsn', proargtypes => 'text',
6082  prosrc => 'pg_create_restore_point' },
6083{ oid => '2849', descr => 'current wal write location',
6084  proname => 'pg_current_wal_lsn', provolatile => 'v', prorettype => 'pg_lsn',
6085  proargtypes => '', prosrc => 'pg_current_wal_lsn' },
6086{ oid => '2852', descr => 'current wal insert location',
6087  proname => 'pg_current_wal_insert_lsn', provolatile => 'v',
6088  prorettype => 'pg_lsn', proargtypes => '',
6089  prosrc => 'pg_current_wal_insert_lsn' },
6090{ oid => '3330', descr => 'current wal flush location',
6091  proname => 'pg_current_wal_flush_lsn', provolatile => 'v',
6092  prorettype => 'pg_lsn', proargtypes => '',
6093  prosrc => 'pg_current_wal_flush_lsn' },
6094{ oid => '2850',
6095  descr => 'wal filename and byte offset, given a wal location',
6096  proname => 'pg_walfile_name_offset', prorettype => 'record',
6097  proargtypes => 'pg_lsn', proallargtypes => '{pg_lsn,text,int4}',
6098  proargmodes => '{i,o,o}', proargnames => '{lsn,file_name,file_offset}',
6099  prosrc => 'pg_walfile_name_offset' },
6100{ oid => '2851', descr => 'wal filename, given a wal location',
6101  proname => 'pg_walfile_name', prorettype => 'text', proargtypes => 'pg_lsn',
6102  prosrc => 'pg_walfile_name' },
6103
6104{ oid => '3165', descr => 'difference in bytes, given two wal locations',
6105  proname => 'pg_wal_lsn_diff', prorettype => 'numeric',
6106  proargtypes => 'pg_lsn pg_lsn', prosrc => 'pg_wal_lsn_diff' },
6107
6108{ oid => '3809', descr => 'export a snapshot',
6109  proname => 'pg_export_snapshot', provolatile => 'v', proparallel => 'u',
6110  prorettype => 'text', proargtypes => '', prosrc => 'pg_export_snapshot' },
6111
6112{ oid => '3810', descr => 'true if server is in recovery',
6113  proname => 'pg_is_in_recovery', provolatile => 'v', prorettype => 'bool',
6114  proargtypes => '', prosrc => 'pg_is_in_recovery' },
6115
6116{ oid => '3820', descr => 'current wal flush location',
6117  proname => 'pg_last_wal_receive_lsn', provolatile => 'v',
6118  prorettype => 'pg_lsn', proargtypes => '',
6119  prosrc => 'pg_last_wal_receive_lsn' },
6120{ oid => '3821', descr => 'last wal replay location',
6121  proname => 'pg_last_wal_replay_lsn', provolatile => 'v',
6122  prorettype => 'pg_lsn', proargtypes => '',
6123  prosrc => 'pg_last_wal_replay_lsn' },
6124{ oid => '3830', descr => 'timestamp of last replay xact',
6125  proname => 'pg_last_xact_replay_timestamp', provolatile => 'v',
6126  prorettype => 'timestamptz', proargtypes => '',
6127  prosrc => 'pg_last_xact_replay_timestamp' },
6128
6129{ oid => '3071', descr => 'pause wal replay',
6130  proname => 'pg_wal_replay_pause', provolatile => 'v', prorettype => 'void',
6131  proargtypes => '', prosrc => 'pg_wal_replay_pause' },
6132{ oid => '3072', descr => 'resume wal replay, if it was paused',
6133  proname => 'pg_wal_replay_resume', provolatile => 'v', prorettype => 'void',
6134  proargtypes => '', prosrc => 'pg_wal_replay_resume' },
6135{ oid => '3073', descr => 'true if wal replay is paused',
6136  proname => 'pg_is_wal_replay_paused', provolatile => 'v',
6137  prorettype => 'bool', proargtypes => '',
6138  prosrc => 'pg_is_wal_replay_paused' },
6139
6140{ oid => '2621', descr => 'reload configuration files',
6141  proname => 'pg_reload_conf', provolatile => 'v', prorettype => 'bool',
6142  proargtypes => '', prosrc => 'pg_reload_conf' },
6143{ oid => '2622', descr => 'rotate log file',
6144  proname => 'pg_rotate_logfile', provolatile => 'v', prorettype => 'bool',
6145  proargtypes => '', prosrc => 'pg_rotate_logfile_v2' },
6146{ oid => '4099', descr => 'rotate log file - old version for adminpack 1.0',
6147  proname => 'pg_rotate_logfile_old', provolatile => 'v', prorettype => 'bool',
6148  proargtypes => '', prosrc => 'pg_rotate_logfile' },
6149{ oid => '3800', descr => 'current logging collector file location',
6150  proname => 'pg_current_logfile', proisstrict => 'f', provolatile => 'v',
6151  prorettype => 'text', proargtypes => '', prosrc => 'pg_current_logfile' },
6152{ oid => '3801', descr => 'current logging collector file location',
6153  proname => 'pg_current_logfile', proisstrict => 'f', provolatile => 'v',
6154  prorettype => 'text', proargtypes => 'text',
6155  prosrc => 'pg_current_logfile_1arg' },
6156
6157{ oid => '2623', descr => 'get information about file',
6158  proname => 'pg_stat_file', provolatile => 'v', prorettype => 'record',
6159  proargtypes => 'text',
6160  proallargtypes => '{text,int8,timestamptz,timestamptz,timestamptz,timestamptz,bool}',
6161  proargmodes => '{i,o,o,o,o,o,o}',
6162  proargnames => '{filename,size,access,modification,change,creation,isdir}',
6163  prosrc => 'pg_stat_file_1arg' },
6164{ oid => '3307', descr => 'get information about file',
6165  proname => 'pg_stat_file', provolatile => 'v', prorettype => 'record',
6166  proargtypes => 'text bool',
6167  proallargtypes => '{text,bool,int8,timestamptz,timestamptz,timestamptz,timestamptz,bool}',
6168  proargmodes => '{i,i,o,o,o,o,o,o}',
6169  proargnames => '{filename,missing_ok,size,access,modification,change,creation,isdir}',
6170  prosrc => 'pg_stat_file' },
6171{ oid => '2624', descr => 'read text from a file',
6172  proname => 'pg_read_file', provolatile => 'v', prorettype => 'text',
6173  proargtypes => 'text int8 int8', prosrc => 'pg_read_file_off_len' },
6174{ oid => '3293', descr => 'read text from a file',
6175  proname => 'pg_read_file', provolatile => 'v', prorettype => 'text',
6176  proargtypes => 'text int8 int8 bool', prosrc => 'pg_read_file_v2' },
6177{ oid => '4100',
6178  descr => 'read text from a file - old version for adminpack 1.0',
6179  proname => 'pg_read_file_old', provolatile => 'v', prorettype => 'text',
6180  proargtypes => 'text int8 int8', prosrc => 'pg_read_file' },
6181{ oid => '3826', descr => 'read text from a file',
6182  proname => 'pg_read_file', provolatile => 'v', prorettype => 'text',
6183  proargtypes => 'text', prosrc => 'pg_read_file_all' },
6184{ oid => '3827', descr => 'read bytea from a file',
6185  proname => 'pg_read_binary_file', provolatile => 'v', prorettype => 'bytea',
6186  proargtypes => 'text int8 int8', prosrc => 'pg_read_binary_file_off_len' },
6187{ oid => '3295', descr => 'read bytea from a file',
6188  proname => 'pg_read_binary_file', provolatile => 'v', prorettype => 'bytea',
6189  proargtypes => 'text int8 int8 bool', prosrc => 'pg_read_binary_file' },
6190{ oid => '3828', descr => 'read bytea from a file',
6191  proname => 'pg_read_binary_file', provolatile => 'v', prorettype => 'bytea',
6192  proargtypes => 'text', prosrc => 'pg_read_binary_file_all' },
6193{ oid => '2625', descr => 'list all files in a directory',
6194  proname => 'pg_ls_dir', prorows => '1000', proretset => 't',
6195  provolatile => 'v', prorettype => 'text', proargtypes => 'text',
6196  prosrc => 'pg_ls_dir_1arg' },
6197{ oid => '3297', descr => 'list all files in a directory',
6198  proname => 'pg_ls_dir', prorows => '1000', proretset => 't',
6199  provolatile => 'v', prorettype => 'text', proargtypes => 'text bool bool',
6200  prosrc => 'pg_ls_dir' },
6201{ oid => '2626', descr => 'sleep for the specified time in seconds',
6202  proname => 'pg_sleep', provolatile => 'v', prorettype => 'void',
6203  proargtypes => 'float8', prosrc => 'pg_sleep' },
6204{ oid => '3935', descr => 'sleep for the specified interval',
6205  proname => 'pg_sleep_for', prolang => 'sql', provolatile => 'v',
6206  prorettype => 'void', proargtypes => 'interval',
6207  prosrc => 'select pg_catalog.pg_sleep(extract(epoch from pg_catalog.clock_timestamp() operator(pg_catalog.+) $1) operator(pg_catalog.-) extract(epoch from pg_catalog.clock_timestamp()))' },
6208{ oid => '3936', descr => 'sleep until the specified time',
6209  proname => 'pg_sleep_until', prolang => 'sql', provolatile => 'v',
6210  prorettype => 'void', proargtypes => 'timestamptz',
6211  prosrc => 'select pg_catalog.pg_sleep(extract(epoch from $1) operator(pg_catalog.-) extract(epoch from pg_catalog.clock_timestamp()))' },
6212{ oid => '315', descr => 'Is JIT compilation available in this session?',
6213  proname => 'pg_jit_available', provolatile => 'v', prorettype => 'bool',
6214  proargtypes => '', prosrc => 'pg_jit_available' },
6215
6216{ oid => '2971', descr => 'convert boolean to text',
6217  proname => 'text', prorettype => 'text', proargtypes => 'bool',
6218  prosrc => 'booltext' },
6219
6220# Aggregates (moved here from pg_aggregate for 7.3)
6221
6222{ oid => '2100',
6223  descr => 'the average (arithmetic mean) as numeric of all bigint values',
6224  proname => 'avg', prokind => 'a', proisstrict => 'f', prorettype => 'numeric',
6225  proargtypes => 'int8', prosrc => 'aggregate_dummy' },
6226{ oid => '2101',
6227  descr => 'the average (arithmetic mean) as numeric of all integer values',
6228  proname => 'avg', prokind => 'a', proisstrict => 'f', prorettype => 'numeric',
6229  proargtypes => 'int4', prosrc => 'aggregate_dummy' },
6230{ oid => '2102',
6231  descr => 'the average (arithmetic mean) as numeric of all smallint values',
6232  proname => 'avg', prokind => 'a', proisstrict => 'f', prorettype => 'numeric',
6233  proargtypes => 'int2', prosrc => 'aggregate_dummy' },
6234{ oid => '2103',
6235  descr => 'the average (arithmetic mean) as numeric of all numeric values',
6236  proname => 'avg', prokind => 'a', proisstrict => 'f', prorettype => 'numeric',
6237  proargtypes => 'numeric', prosrc => 'aggregate_dummy' },
6238{ oid => '2104',
6239  descr => 'the average (arithmetic mean) as float8 of all float4 values',
6240  proname => 'avg', prokind => 'a', proisstrict => 'f', prorettype => 'float8',
6241  proargtypes => 'float4', prosrc => 'aggregate_dummy' },
6242{ oid => '2105',
6243  descr => 'the average (arithmetic mean) as float8 of all float8 values',
6244  proname => 'avg', prokind => 'a', proisstrict => 'f', prorettype => 'float8',
6245  proargtypes => 'float8', prosrc => 'aggregate_dummy' },
6246{ oid => '2106',
6247  descr => 'the average (arithmetic mean) as interval of all interval values',
6248  proname => 'avg', prokind => 'a', proisstrict => 'f',
6249  prorettype => 'interval', proargtypes => 'interval',
6250  prosrc => 'aggregate_dummy' },
6251
6252{ oid => '2107', descr => 'sum as numeric across all bigint input values',
6253  proname => 'sum', prokind => 'a', proisstrict => 'f', prorettype => 'numeric',
6254  proargtypes => 'int8', prosrc => 'aggregate_dummy' },
6255{ oid => '2108', descr => 'sum as bigint across all integer input values',
6256  proname => 'sum', prokind => 'a', proisstrict => 'f', prorettype => 'int8',
6257  proargtypes => 'int4', prosrc => 'aggregate_dummy' },
6258{ oid => '2109', descr => 'sum as bigint across all smallint input values',
6259  proname => 'sum', prokind => 'a', proisstrict => 'f', prorettype => 'int8',
6260  proargtypes => 'int2', prosrc => 'aggregate_dummy' },
6261{ oid => '2110', descr => 'sum as float4 across all float4 input values',
6262  proname => 'sum', prokind => 'a', proisstrict => 'f', prorettype => 'float4',
6263  proargtypes => 'float4', prosrc => 'aggregate_dummy' },
6264{ oid => '2111', descr => 'sum as float8 across all float8 input values',
6265  proname => 'sum', prokind => 'a', proisstrict => 'f', prorettype => 'float8',
6266  proargtypes => 'float8', prosrc => 'aggregate_dummy' },
6267{ oid => '2112', descr => 'sum as money across all money input values',
6268  proname => 'sum', prokind => 'a', proisstrict => 'f', prorettype => 'money',
6269  proargtypes => 'money', prosrc => 'aggregate_dummy' },
6270{ oid => '2113', descr => 'sum as interval across all interval input values',
6271  proname => 'sum', prokind => 'a', proisstrict => 'f',
6272  prorettype => 'interval', proargtypes => 'interval',
6273  prosrc => 'aggregate_dummy' },
6274{ oid => '2114', descr => 'sum as numeric across all numeric input values',
6275  proname => 'sum', prokind => 'a', proisstrict => 'f', prorettype => 'numeric',
6276  proargtypes => 'numeric', prosrc => 'aggregate_dummy' },
6277
6278{ oid => '2115', descr => 'maximum value of all bigint input values',
6279  proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'int8',
6280  proargtypes => 'int8', prosrc => 'aggregate_dummy' },
6281{ oid => '2116', descr => 'maximum value of all integer input values',
6282  proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'int4',
6283  proargtypes => 'int4', prosrc => 'aggregate_dummy' },
6284{ oid => '2117', descr => 'maximum value of all smallint input values',
6285  proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'int2',
6286  proargtypes => 'int2', prosrc => 'aggregate_dummy' },
6287{ oid => '2118', descr => 'maximum value of all oid input values',
6288  proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'oid',
6289  proargtypes => 'oid', prosrc => 'aggregate_dummy' },
6290{ oid => '2119', descr => 'maximum value of all float4 input values',
6291  proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'float4',
6292  proargtypes => 'float4', prosrc => 'aggregate_dummy' },
6293{ oid => '2120', descr => 'maximum value of all float8 input values',
6294  proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'float8',
6295  proargtypes => 'float8', prosrc => 'aggregate_dummy' },
6296{ oid => '2122', descr => 'maximum value of all date input values',
6297  proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'date',
6298  proargtypes => 'date', prosrc => 'aggregate_dummy' },
6299{ oid => '2123', descr => 'maximum value of all time input values',
6300  proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'time',
6301  proargtypes => 'time', prosrc => 'aggregate_dummy' },
6302{ oid => '2124',
6303  descr => 'maximum value of all time with time zone input values',
6304  proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'timetz',
6305  proargtypes => 'timetz', prosrc => 'aggregate_dummy' },
6306{ oid => '2125', descr => 'maximum value of all money input values',
6307  proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'money',
6308  proargtypes => 'money', prosrc => 'aggregate_dummy' },
6309{ oid => '2126', descr => 'maximum value of all timestamp input values',
6310  proname => 'max', prokind => 'a', proisstrict => 'f',
6311  prorettype => 'timestamp', proargtypes => 'timestamp',
6312  prosrc => 'aggregate_dummy' },
6313{ oid => '2127',
6314  descr => 'maximum value of all timestamp with time zone input values',
6315  proname => 'max', prokind => 'a', proisstrict => 'f',
6316  prorettype => 'timestamptz', proargtypes => 'timestamptz',
6317  prosrc => 'aggregate_dummy' },
6318{ oid => '2128', descr => 'maximum value of all interval input values',
6319  proname => 'max', prokind => 'a', proisstrict => 'f',
6320  prorettype => 'interval', proargtypes => 'interval',
6321  prosrc => 'aggregate_dummy' },
6322{ oid => '2129', descr => 'maximum value of all text input values',
6323  proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'text',
6324  proargtypes => 'text', prosrc => 'aggregate_dummy' },
6325{ oid => '2130', descr => 'maximum value of all numeric input values',
6326  proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'numeric',
6327  proargtypes => 'numeric', prosrc => 'aggregate_dummy' },
6328{ oid => '2050', descr => 'maximum value of all anyarray input values',
6329  proname => 'max', prokind => 'a', proisstrict => 'f',
6330  prorettype => 'anyarray', proargtypes => 'anyarray',
6331  prosrc => 'aggregate_dummy' },
6332{ oid => '2244', descr => 'maximum value of all bpchar input values',
6333  proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'bpchar',
6334  proargtypes => 'bpchar', prosrc => 'aggregate_dummy' },
6335{ oid => '2797', descr => 'maximum value of all tid input values',
6336  proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'tid',
6337  proargtypes => 'tid', prosrc => 'aggregate_dummy' },
6338{ oid => '3564', descr => 'maximum value of all inet input values',
6339  proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'inet',
6340  proargtypes => 'inet', prosrc => 'aggregate_dummy' },
6341{ oid => '4189', descr => 'maximum value of all pg_lsn input values',
6342  proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'pg_lsn',
6343  proargtypes => 'pg_lsn', prosrc => 'aggregate_dummy' },
6344
6345{ oid => '2131', descr => 'minimum value of all bigint input values',
6346  proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'int8',
6347  proargtypes => 'int8', prosrc => 'aggregate_dummy' },
6348{ oid => '2132', descr => 'minimum value of all integer input values',
6349  proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'int4',
6350  proargtypes => 'int4', prosrc => 'aggregate_dummy' },
6351{ oid => '2133', descr => 'minimum value of all smallint input values',
6352  proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'int2',
6353  proargtypes => 'int2', prosrc => 'aggregate_dummy' },
6354{ oid => '2134', descr => 'minimum value of all oid input values',
6355  proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'oid',
6356  proargtypes => 'oid', prosrc => 'aggregate_dummy' },
6357{ oid => '2135', descr => 'minimum value of all float4 input values',
6358  proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'float4',
6359  proargtypes => 'float4', prosrc => 'aggregate_dummy' },
6360{ oid => '2136', descr => 'minimum value of all float8 input values',
6361  proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'float8',
6362  proargtypes => 'float8', prosrc => 'aggregate_dummy' },
6363{ oid => '2138', descr => 'minimum value of all date input values',
6364  proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'date',
6365  proargtypes => 'date', prosrc => 'aggregate_dummy' },
6366{ oid => '2139', descr => 'minimum value of all time input values',
6367  proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'time',
6368  proargtypes => 'time', prosrc => 'aggregate_dummy' },
6369{ oid => '2140',
6370  descr => 'minimum value of all time with time zone input values',
6371  proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'timetz',
6372  proargtypes => 'timetz', prosrc => 'aggregate_dummy' },
6373{ oid => '2141', descr => 'minimum value of all money input values',
6374  proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'money',
6375  proargtypes => 'money', prosrc => 'aggregate_dummy' },
6376{ oid => '2142', descr => 'minimum value of all timestamp input values',
6377  proname => 'min', prokind => 'a', proisstrict => 'f',
6378  prorettype => 'timestamp', proargtypes => 'timestamp',
6379  prosrc => 'aggregate_dummy' },
6380{ oid => '2143',
6381  descr => 'minimum value of all timestamp with time zone input values',
6382  proname => 'min', prokind => 'a', proisstrict => 'f',
6383  prorettype => 'timestamptz', proargtypes => 'timestamptz',
6384  prosrc => 'aggregate_dummy' },
6385{ oid => '2144', descr => 'minimum value of all interval input values',
6386  proname => 'min', prokind => 'a', proisstrict => 'f',
6387  prorettype => 'interval', proargtypes => 'interval',
6388  prosrc => 'aggregate_dummy' },
6389{ oid => '2145', descr => 'minimum value of all text values',
6390  proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'text',
6391  proargtypes => 'text', prosrc => 'aggregate_dummy' },
6392{ oid => '2146', descr => 'minimum value of all numeric input values',
6393  proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'numeric',
6394  proargtypes => 'numeric', prosrc => 'aggregate_dummy' },
6395{ oid => '2051', descr => 'minimum value of all anyarray input values',
6396  proname => 'min', prokind => 'a', proisstrict => 'f',
6397  prorettype => 'anyarray', proargtypes => 'anyarray',
6398  prosrc => 'aggregate_dummy' },
6399{ oid => '2245', descr => 'minimum value of all bpchar input values',
6400  proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'bpchar',
6401  proargtypes => 'bpchar', prosrc => 'aggregate_dummy' },
6402{ oid => '2798', descr => 'minimum value of all tid input values',
6403  proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'tid',
6404  proargtypes => 'tid', prosrc => 'aggregate_dummy' },
6405{ oid => '3565', descr => 'minimum value of all inet input values',
6406  proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'inet',
6407  proargtypes => 'inet', prosrc => 'aggregate_dummy' },
6408{ oid => '4190', descr => 'minimum value of all pg_lsn input values',
6409  proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'pg_lsn',
6410  proargtypes => 'pg_lsn', prosrc => 'aggregate_dummy' },
6411
6412# count has two forms: count(any) and count(*)
6413{ oid => '2147',
6414  descr => 'number of input rows for which the input expression is not null',
6415  proname => 'count', prokind => 'a', proisstrict => 'f', prorettype => 'int8',
6416  proargtypes => 'any', prosrc => 'aggregate_dummy' },
6417{ oid => '2803', descr => 'number of input rows',
6418  proname => 'count', prokind => 'a', proisstrict => 'f', prorettype => 'int8',
6419  proargtypes => '', prosrc => 'aggregate_dummy' },
6420
6421{ oid => '2718',
6422  descr => 'population variance of bigint input values (square of the population standard deviation)',
6423  proname => 'var_pop', prokind => 'a', proisstrict => 'f',
6424  prorettype => 'numeric', proargtypes => 'int8', prosrc => 'aggregate_dummy' },
6425{ oid => '2719',
6426  descr => 'population variance of integer input values (square of the population standard deviation)',
6427  proname => 'var_pop', prokind => 'a', proisstrict => 'f',
6428  prorettype => 'numeric', proargtypes => 'int4', prosrc => 'aggregate_dummy' },
6429{ oid => '2720',
6430  descr => 'population variance of smallint input values (square of the population standard deviation)',
6431  proname => 'var_pop', prokind => 'a', proisstrict => 'f',
6432  prorettype => 'numeric', proargtypes => 'int2', prosrc => 'aggregate_dummy' },
6433{ oid => '2721',
6434  descr => 'population variance of float4 input values (square of the population standard deviation)',
6435  proname => 'var_pop', prokind => 'a', proisstrict => 'f',
6436  prorettype => 'float8', proargtypes => 'float4',
6437  prosrc => 'aggregate_dummy' },
6438{ oid => '2722',
6439  descr => 'population variance of float8 input values (square of the population standard deviation)',
6440  proname => 'var_pop', prokind => 'a', proisstrict => 'f',
6441  prorettype => 'float8', proargtypes => 'float8',
6442  prosrc => 'aggregate_dummy' },
6443{ oid => '2723',
6444  descr => 'population variance of numeric input values (square of the population standard deviation)',
6445  proname => 'var_pop', prokind => 'a', proisstrict => 'f',
6446  prorettype => 'numeric', proargtypes => 'numeric',
6447  prosrc => 'aggregate_dummy' },
6448
6449{ oid => '2641',
6450  descr => 'sample variance of bigint input values (square of the sample standard deviation)',
6451  proname => 'var_samp', prokind => 'a', proisstrict => 'f',
6452  prorettype => 'numeric', proargtypes => 'int8', prosrc => 'aggregate_dummy' },
6453{ oid => '2642',
6454  descr => 'sample variance of integer input values (square of the sample standard deviation)',
6455  proname => 'var_samp', prokind => 'a', proisstrict => 'f',
6456  prorettype => 'numeric', proargtypes => 'int4', prosrc => 'aggregate_dummy' },
6457{ oid => '2643',
6458  descr => 'sample variance of smallint input values (square of the sample standard deviation)',
6459  proname => 'var_samp', prokind => 'a', proisstrict => 'f',
6460  prorettype => 'numeric', proargtypes => 'int2', prosrc => 'aggregate_dummy' },
6461{ oid => '2644',
6462  descr => 'sample variance of float4 input values (square of the sample standard deviation)',
6463  proname => 'var_samp', prokind => 'a', proisstrict => 'f',
6464  prorettype => 'float8', proargtypes => 'float4',
6465  prosrc => 'aggregate_dummy' },
6466
6467{ oid => '2645',
6468  descr => 'sample variance of float8 input values (square of the sample standard deviation)',
6469  proname => 'var_samp', prokind => 'a', proisstrict => 'f',
6470  prorettype => 'float8', proargtypes => 'float8',
6471  prosrc => 'aggregate_dummy' },
6472{ oid => '2646',
6473  descr => 'sample variance of numeric input values (square of the sample standard deviation)',
6474  proname => 'var_samp', prokind => 'a', proisstrict => 'f',
6475  prorettype => 'numeric', proargtypes => 'numeric',
6476  prosrc => 'aggregate_dummy' },
6477
6478{ oid => '2148', descr => 'historical alias for var_samp',
6479  proname => 'variance', prokind => 'a', proisstrict => 'f',
6480  prorettype => 'numeric', proargtypes => 'int8', prosrc => 'aggregate_dummy' },
6481{ oid => '2149', descr => 'historical alias for var_samp',
6482  proname => 'variance', prokind => 'a', proisstrict => 'f',
6483  prorettype => 'numeric', proargtypes => 'int4', prosrc => 'aggregate_dummy' },
6484{ oid => '2150', descr => 'historical alias for var_samp',
6485  proname => 'variance', prokind => 'a', proisstrict => 'f',
6486  prorettype => 'numeric', proargtypes => 'int2', prosrc => 'aggregate_dummy' },
6487{ oid => '2151', descr => 'historical alias for var_samp',
6488  proname => 'variance', prokind => 'a', proisstrict => 'f',
6489  prorettype => 'float8', proargtypes => 'float4',
6490  prosrc => 'aggregate_dummy' },
6491{ oid => '2152', descr => 'historical alias for var_samp',
6492  proname => 'variance', prokind => 'a', proisstrict => 'f',
6493  prorettype => 'float8', proargtypes => 'float8',
6494  prosrc => 'aggregate_dummy' },
6495{ oid => '2153', descr => 'historical alias for var_samp',
6496  proname => 'variance', prokind => 'a', proisstrict => 'f',
6497  prorettype => 'numeric', proargtypes => 'numeric',
6498  prosrc => 'aggregate_dummy' },
6499
6500{ oid => '2724',
6501  descr => 'population standard deviation of bigint input values',
6502  proname => 'stddev_pop', prokind => 'a', proisstrict => 'f',
6503  prorettype => 'numeric', proargtypes => 'int8', prosrc => 'aggregate_dummy' },
6504{ oid => '2725',
6505  descr => 'population standard deviation of integer input values',
6506  proname => 'stddev_pop', prokind => 'a', proisstrict => 'f',
6507  prorettype => 'numeric', proargtypes => 'int4', prosrc => 'aggregate_dummy' },
6508{ oid => '2726',
6509  descr => 'population standard deviation of smallint input values',
6510  proname => 'stddev_pop', prokind => 'a', proisstrict => 'f',
6511  prorettype => 'numeric', proargtypes => 'int2', prosrc => 'aggregate_dummy' },
6512{ oid => '2727',
6513  descr => 'population standard deviation of float4 input values',
6514  proname => 'stddev_pop', prokind => 'a', proisstrict => 'f',
6515  prorettype => 'float8', proargtypes => 'float4',
6516  prosrc => 'aggregate_dummy' },
6517{ oid => '2728',
6518  descr => 'population standard deviation of float8 input values',
6519  proname => 'stddev_pop', prokind => 'a', proisstrict => 'f',
6520  prorettype => 'float8', proargtypes => 'float8',
6521  prosrc => 'aggregate_dummy' },
6522{ oid => '2729',
6523  descr => 'population standard deviation of numeric input values',
6524  proname => 'stddev_pop', prokind => 'a', proisstrict => 'f',
6525  prorettype => 'numeric', proargtypes => 'numeric',
6526  prosrc => 'aggregate_dummy' },
6527
6528{ oid => '2712', descr => 'sample standard deviation of bigint input values',
6529  proname => 'stddev_samp', prokind => 'a', proisstrict => 'f',
6530  prorettype => 'numeric', proargtypes => 'int8', prosrc => 'aggregate_dummy' },
6531{ oid => '2713', descr => 'sample standard deviation of integer input values',
6532  proname => 'stddev_samp', prokind => 'a', proisstrict => 'f',
6533  prorettype => 'numeric', proargtypes => 'int4', prosrc => 'aggregate_dummy' },
6534{ oid => '2714',
6535  descr => 'sample standard deviation of smallint input values',
6536  proname => 'stddev_samp', prokind => 'a', proisstrict => 'f',
6537  prorettype => 'numeric', proargtypes => 'int2', prosrc => 'aggregate_dummy' },
6538{ oid => '2715', descr => 'sample standard deviation of float4 input values',
6539  proname => 'stddev_samp', prokind => 'a', proisstrict => 'f',
6540  prorettype => 'float8', proargtypes => 'float4',
6541  prosrc => 'aggregate_dummy' },
6542{ oid => '2716', descr => 'sample standard deviation of float8 input values',
6543  proname => 'stddev_samp', prokind => 'a', proisstrict => 'f',
6544  prorettype => 'float8', proargtypes => 'float8',
6545  prosrc => 'aggregate_dummy' },
6546{ oid => '2717', descr => 'sample standard deviation of numeric input values',
6547  proname => 'stddev_samp', prokind => 'a', proisstrict => 'f',
6548  prorettype => 'numeric', proargtypes => 'numeric',
6549  prosrc => 'aggregate_dummy' },
6550
6551{ oid => '2154', descr => 'historical alias for stddev_samp',
6552  proname => 'stddev', prokind => 'a', proisstrict => 'f',
6553  prorettype => 'numeric', proargtypes => 'int8', prosrc => 'aggregate_dummy' },
6554{ oid => '2155', descr => 'historical alias for stddev_samp',
6555  proname => 'stddev', prokind => 'a', proisstrict => 'f',
6556  prorettype => 'numeric', proargtypes => 'int4', prosrc => 'aggregate_dummy' },
6557{ oid => '2156', descr => 'historical alias for stddev_samp',
6558  proname => 'stddev', prokind => 'a', proisstrict => 'f',
6559  prorettype => 'numeric', proargtypes => 'int2', prosrc => 'aggregate_dummy' },
6560{ oid => '2157', descr => 'historical alias for stddev_samp',
6561  proname => 'stddev', prokind => 'a', proisstrict => 'f',
6562  prorettype => 'float8', proargtypes => 'float4',
6563  prosrc => 'aggregate_dummy' },
6564{ oid => '2158', descr => 'historical alias for stddev_samp',
6565  proname => 'stddev', prokind => 'a', proisstrict => 'f',
6566  prorettype => 'float8', proargtypes => 'float8',
6567  prosrc => 'aggregate_dummy' },
6568{ oid => '2159', descr => 'historical alias for stddev_samp',
6569  proname => 'stddev', prokind => 'a', proisstrict => 'f',
6570  prorettype => 'numeric', proargtypes => 'numeric',
6571  prosrc => 'aggregate_dummy' },
6572
6573{ oid => '2818',
6574  descr => 'number of input rows in which both expressions are not null',
6575  proname => 'regr_count', prokind => 'a', proisstrict => 'f',
6576  prorettype => 'int8', proargtypes => 'float8 float8',
6577  prosrc => 'aggregate_dummy' },
6578{ oid => '2819',
6579  descr => 'sum of squares of the independent variable (sum(X^2) - sum(X)^2/N)',
6580  proname => 'regr_sxx', prokind => 'a', proisstrict => 'f',
6581  prorettype => 'float8', proargtypes => 'float8 float8',
6582  prosrc => 'aggregate_dummy' },
6583{ oid => '2820',
6584  descr => 'sum of squares of the dependent variable (sum(Y^2) - sum(Y)^2/N)',
6585  proname => 'regr_syy', prokind => 'a', proisstrict => 'f',
6586  prorettype => 'float8', proargtypes => 'float8 float8',
6587  prosrc => 'aggregate_dummy' },
6588{ oid => '2821',
6589  descr => 'sum of products of independent times dependent variable (sum(X*Y) - sum(X) * sum(Y)/N)',
6590  proname => 'regr_sxy', prokind => 'a', proisstrict => 'f',
6591  prorettype => 'float8', proargtypes => 'float8 float8',
6592  prosrc => 'aggregate_dummy' },
6593{ oid => '2822', descr => 'average of the independent variable (sum(X)/N)',
6594  proname => 'regr_avgx', prokind => 'a', proisstrict => 'f',
6595  prorettype => 'float8', proargtypes => 'float8 float8',
6596  prosrc => 'aggregate_dummy' },
6597{ oid => '2823', descr => 'average of the dependent variable (sum(Y)/N)',
6598  proname => 'regr_avgy', prokind => 'a', proisstrict => 'f',
6599  prorettype => 'float8', proargtypes => 'float8 float8',
6600  prosrc => 'aggregate_dummy' },
6601{ oid => '2824', descr => 'square of the correlation coefficient',
6602  proname => 'regr_r2', prokind => 'a', proisstrict => 'f',
6603  prorettype => 'float8', proargtypes => 'float8 float8',
6604  prosrc => 'aggregate_dummy' },
6605{ oid => '2825',
6606  descr => 'slope of the least-squares-fit linear equation determined by the (X, Y) pairs',
6607  proname => 'regr_slope', prokind => 'a', proisstrict => 'f',
6608  prorettype => 'float8', proargtypes => 'float8 float8',
6609  prosrc => 'aggregate_dummy' },
6610{ oid => '2826',
6611  descr => 'y-intercept of the least-squares-fit linear equation determined by the (X, Y) pairs',
6612  proname => 'regr_intercept', prokind => 'a', proisstrict => 'f',
6613  prorettype => 'float8', proargtypes => 'float8 float8',
6614  prosrc => 'aggregate_dummy' },
6615
6616{ oid => '2827', descr => 'population covariance',
6617  proname => 'covar_pop', prokind => 'a', proisstrict => 'f',
6618  prorettype => 'float8', proargtypes => 'float8 float8',
6619  prosrc => 'aggregate_dummy' },
6620{ oid => '2828', descr => 'sample covariance',
6621  proname => 'covar_samp', prokind => 'a', proisstrict => 'f',
6622  prorettype => 'float8', proargtypes => 'float8 float8',
6623  prosrc => 'aggregate_dummy' },
6624{ oid => '2829', descr => 'correlation coefficient',
6625  proname => 'corr', prokind => 'a', proisstrict => 'f', prorettype => 'float8',
6626  proargtypes => 'float8 float8', prosrc => 'aggregate_dummy' },
6627
6628{ oid => '2160',
6629  proname => 'text_pattern_lt', proleakproof => 't', prorettype => 'bool',
6630  proargtypes => 'text text', prosrc => 'text_pattern_lt' },
6631{ oid => '2161',
6632  proname => 'text_pattern_le', proleakproof => 't', prorettype => 'bool',
6633  proargtypes => 'text text', prosrc => 'text_pattern_le' },
6634{ oid => '2163',
6635  proname => 'text_pattern_ge', proleakproof => 't', prorettype => 'bool',
6636  proargtypes => 'text text', prosrc => 'text_pattern_ge' },
6637{ oid => '2164',
6638  proname => 'text_pattern_gt', proleakproof => 't', prorettype => 'bool',
6639  proargtypes => 'text text', prosrc => 'text_pattern_gt' },
6640{ oid => '2166', descr => 'less-equal-greater',
6641  proname => 'bttext_pattern_cmp', proleakproof => 't', prorettype => 'int4',
6642  proargtypes => 'text text', prosrc => 'bttext_pattern_cmp' },
6643{ oid => '3332', descr => 'sort support',
6644  proname => 'bttext_pattern_sortsupport', prorettype => 'void',
6645  proargtypes => 'internal', prosrc => 'bttext_pattern_sortsupport' },
6646
6647{ oid => '2174',
6648  proname => 'bpchar_pattern_lt', proleakproof => 't', prorettype => 'bool',
6649  proargtypes => 'bpchar bpchar', prosrc => 'bpchar_pattern_lt' },
6650{ oid => '2175',
6651  proname => 'bpchar_pattern_le', proleakproof => 't', prorettype => 'bool',
6652  proargtypes => 'bpchar bpchar', prosrc => 'bpchar_pattern_le' },
6653{ oid => '2177',
6654  proname => 'bpchar_pattern_ge', proleakproof => 't', prorettype => 'bool',
6655  proargtypes => 'bpchar bpchar', prosrc => 'bpchar_pattern_ge' },
6656{ oid => '2178',
6657  proname => 'bpchar_pattern_gt', proleakproof => 't', prorettype => 'bool',
6658  proargtypes => 'bpchar bpchar', prosrc => 'bpchar_pattern_gt' },
6659{ oid => '2180', descr => 'less-equal-greater',
6660  proname => 'btbpchar_pattern_cmp', proleakproof => 't', prorettype => 'int4',
6661  proargtypes => 'bpchar bpchar', prosrc => 'btbpchar_pattern_cmp' },
6662{ oid => '3333', descr => 'sort support',
6663  proname => 'btbpchar_pattern_sortsupport', prorettype => 'void',
6664  proargtypes => 'internal', prosrc => 'btbpchar_pattern_sortsupport' },
6665
6666{ oid => '2188', descr => 'less-equal-greater',
6667  proname => 'btint48cmp', proleakproof => 't', prorettype => 'int4',
6668  proargtypes => 'int4 int8', prosrc => 'btint48cmp' },
6669{ oid => '2189', descr => 'less-equal-greater',
6670  proname => 'btint84cmp', proleakproof => 't', prorettype => 'int4',
6671  proargtypes => 'int8 int4', prosrc => 'btint84cmp' },
6672{ oid => '2190', descr => 'less-equal-greater',
6673  proname => 'btint24cmp', proleakproof => 't', prorettype => 'int4',
6674  proargtypes => 'int2 int4', prosrc => 'btint24cmp' },
6675{ oid => '2191', descr => 'less-equal-greater',
6676  proname => 'btint42cmp', proleakproof => 't', prorettype => 'int4',
6677  proargtypes => 'int4 int2', prosrc => 'btint42cmp' },
6678{ oid => '2192', descr => 'less-equal-greater',
6679  proname => 'btint28cmp', proleakproof => 't', prorettype => 'int4',
6680  proargtypes => 'int2 int8', prosrc => 'btint28cmp' },
6681{ oid => '2193', descr => 'less-equal-greater',
6682  proname => 'btint82cmp', proleakproof => 't', prorettype => 'int4',
6683  proargtypes => 'int8 int2', prosrc => 'btint82cmp' },
6684{ oid => '2194', descr => 'less-equal-greater',
6685  proname => 'btfloat48cmp', proleakproof => 't', prorettype => 'int4',
6686  proargtypes => 'float4 float8', prosrc => 'btfloat48cmp' },
6687{ oid => '2195', descr => 'less-equal-greater',
6688  proname => 'btfloat84cmp', proleakproof => 't', prorettype => 'int4',
6689  proargtypes => 'float8 float4', prosrc => 'btfloat84cmp' },
6690
6691{ oid => '2212', descr => 'I/O',
6692  proname => 'regprocedurein', provolatile => 's', prorettype => 'regprocedure',
6693  proargtypes => 'cstring', prosrc => 'regprocedurein' },
6694{ oid => '2213', descr => 'I/O',
6695  proname => 'regprocedureout', provolatile => 's', prorettype => 'cstring',
6696  proargtypes => 'regprocedure', prosrc => 'regprocedureout' },
6697{ oid => '2214', descr => 'I/O',
6698  proname => 'regoperin', provolatile => 's', prorettype => 'regoper',
6699  proargtypes => 'cstring', prosrc => 'regoperin' },
6700{ oid => '2215', descr => 'I/O',
6701  proname => 'regoperout', provolatile => 's', prorettype => 'cstring',
6702  proargtypes => 'regoper', prosrc => 'regoperout' },
6703{ oid => '3492', descr => 'convert operator name to regoper',
6704  proname => 'to_regoper', provolatile => 's', prorettype => 'regoper',
6705  proargtypes => 'text', prosrc => 'to_regoper' },
6706{ oid => '3476', descr => 'convert operator name to regoperator',
6707  proname => 'to_regoperator', provolatile => 's', prorettype => 'regoperator',
6708  proargtypes => 'text', prosrc => 'to_regoperator' },
6709{ oid => '2216', descr => 'I/O',
6710  proname => 'regoperatorin', provolatile => 's', prorettype => 'regoperator',
6711  proargtypes => 'cstring', prosrc => 'regoperatorin' },
6712{ oid => '2217', descr => 'I/O',
6713  proname => 'regoperatorout', provolatile => 's', prorettype => 'cstring',
6714  proargtypes => 'regoperator', prosrc => 'regoperatorout' },
6715{ oid => '2218', descr => 'I/O',
6716  proname => 'regclassin', provolatile => 's', prorettype => 'regclass',
6717  proargtypes => 'cstring', prosrc => 'regclassin' },
6718{ oid => '2219', descr => 'I/O',
6719  proname => 'regclassout', provolatile => 's', prorettype => 'cstring',
6720  proargtypes => 'regclass', prosrc => 'regclassout' },
6721{ oid => '3495', descr => 'convert classname to regclass',
6722  proname => 'to_regclass', provolatile => 's', prorettype => 'regclass',
6723  proargtypes => 'text', prosrc => 'to_regclass' },
6724{ oid => '4193', descr => 'I/O',
6725  proname => 'regcollationin', provolatile => 's', prorettype => 'regcollation',
6726  proargtypes => 'cstring', prosrc => 'regcollationin' },
6727{ oid => '4194', descr => 'I/O',
6728  proname => 'regcollationout', provolatile => 's', prorettype => 'cstring',
6729  proargtypes => 'regcollation', prosrc => 'regcollationout' },
6730{ oid => '4195', descr => 'convert classname to regcollation',
6731  proname => 'to_regcollation', provolatile => 's',
6732  prorettype => 'regcollation', proargtypes => 'text',
6733  prosrc => 'to_regcollation' },
6734{ oid => '2220', descr => 'I/O',
6735  proname => 'regtypein', provolatile => 's', prorettype => 'regtype',
6736  proargtypes => 'cstring', prosrc => 'regtypein' },
6737{ oid => '2221', descr => 'I/O',
6738  proname => 'regtypeout', provolatile => 's', prorettype => 'cstring',
6739  proargtypes => 'regtype', prosrc => 'regtypeout' },
6740{ oid => '3493', descr => 'convert type name to regtype',
6741  proname => 'to_regtype', provolatile => 's', prorettype => 'regtype',
6742  proargtypes => 'text', prosrc => 'to_regtype' },
6743{ oid => '1079', descr => 'convert text to regclass',
6744  proname => 'regclass', provolatile => 's', prorettype => 'regclass',
6745  proargtypes => 'text', prosrc => 'text_regclass' },
6746
6747{ oid => '4098', descr => 'I/O',
6748  proname => 'regrolein', provolatile => 's', prorettype => 'regrole',
6749  proargtypes => 'cstring', prosrc => 'regrolein' },
6750{ oid => '4092', descr => 'I/O',
6751  proname => 'regroleout', provolatile => 's', prorettype => 'cstring',
6752  proargtypes => 'regrole', prosrc => 'regroleout' },
6753{ oid => '4093', descr => 'convert role name to regrole',
6754  proname => 'to_regrole', provolatile => 's', prorettype => 'regrole',
6755  proargtypes => 'text', prosrc => 'to_regrole' },
6756
6757{ oid => '4084', descr => 'I/O',
6758  proname => 'regnamespacein', provolatile => 's', prorettype => 'regnamespace',
6759  proargtypes => 'cstring', prosrc => 'regnamespacein' },
6760{ oid => '4085', descr => 'I/O',
6761  proname => 'regnamespaceout', provolatile => 's', prorettype => 'cstring',
6762  proargtypes => 'regnamespace', prosrc => 'regnamespaceout' },
6763{ oid => '4086', descr => 'convert namespace name to regnamespace',
6764  proname => 'to_regnamespace', provolatile => 's',
6765  prorettype => 'regnamespace', proargtypes => 'text',
6766  prosrc => 'to_regnamespace' },
6767
6768{ oid => '1268',
6769  descr => 'parse qualified identifier to array of identifiers',
6770  proname => 'parse_ident', prorettype => '_text', proargtypes => 'text bool',
6771  proargnames => '{str,strict}', prosrc => 'parse_ident' },
6772
6773{ oid => '2246', descr => '(internal)',
6774  proname => 'fmgr_internal_validator', provolatile => 's',
6775  prorettype => 'void', proargtypes => 'oid',
6776  prosrc => 'fmgr_internal_validator' },
6777{ oid => '2247', descr => '(internal)',
6778  proname => 'fmgr_c_validator', provolatile => 's', prorettype => 'void',
6779  proargtypes => 'oid', prosrc => 'fmgr_c_validator' },
6780{ oid => '2248', descr => '(internal)',
6781  proname => 'fmgr_sql_validator', provolatile => 's', prorettype => 'void',
6782  proargtypes => 'oid', prosrc => 'fmgr_sql_validator' },
6783
6784{ oid => '2250',
6785  descr => 'user privilege on database by username, database name',
6786  proname => 'has_database_privilege', provolatile => 's', prorettype => 'bool',
6787  proargtypes => 'name text text',
6788  prosrc => 'has_database_privilege_name_name' },
6789{ oid => '2251',
6790  descr => 'user privilege on database by username, database oid',
6791  proname => 'has_database_privilege', provolatile => 's', prorettype => 'bool',
6792  proargtypes => 'name oid text', prosrc => 'has_database_privilege_name_id' },
6793{ oid => '2252',
6794  descr => 'user privilege on database by user oid, database name',
6795  proname => 'has_database_privilege', provolatile => 's', prorettype => 'bool',
6796  proargtypes => 'oid text text', prosrc => 'has_database_privilege_id_name' },
6797{ oid => '2253',
6798  descr => 'user privilege on database by user oid, database oid',
6799  proname => 'has_database_privilege', provolatile => 's', prorettype => 'bool',
6800  proargtypes => 'oid oid text', prosrc => 'has_database_privilege_id_id' },
6801{ oid => '2254',
6802  descr => 'current user privilege on database by database name',
6803  proname => 'has_database_privilege', provolatile => 's', prorettype => 'bool',
6804  proargtypes => 'text text', prosrc => 'has_database_privilege_name' },
6805{ oid => '2255',
6806  descr => 'current user privilege on database by database oid',
6807  proname => 'has_database_privilege', provolatile => 's', prorettype => 'bool',
6808  proargtypes => 'oid text', prosrc => 'has_database_privilege_id' },
6809
6810{ oid => '2256',
6811  descr => 'user privilege on function by username, function name',
6812  proname => 'has_function_privilege', provolatile => 's', prorettype => 'bool',
6813  proargtypes => 'name text text',
6814  prosrc => 'has_function_privilege_name_name' },
6815{ oid => '2257',
6816  descr => 'user privilege on function by username, function oid',
6817  proname => 'has_function_privilege', provolatile => 's', prorettype => 'bool',
6818  proargtypes => 'name oid text', prosrc => 'has_function_privilege_name_id' },
6819{ oid => '2258',
6820  descr => 'user privilege on function by user oid, function name',
6821  proname => 'has_function_privilege', provolatile => 's', prorettype => 'bool',
6822  proargtypes => 'oid text text', prosrc => 'has_function_privilege_id_name' },
6823{ oid => '2259',
6824  descr => 'user privilege on function by user oid, function oid',
6825  proname => 'has_function_privilege', provolatile => 's', prorettype => 'bool',
6826  proargtypes => 'oid oid text', prosrc => 'has_function_privilege_id_id' },
6827{ oid => '2260',
6828  descr => 'current user privilege on function by function name',
6829  proname => 'has_function_privilege', provolatile => 's', prorettype => 'bool',
6830  proargtypes => 'text text', prosrc => 'has_function_privilege_name' },
6831{ oid => '2261',
6832  descr => 'current user privilege on function by function oid',
6833  proname => 'has_function_privilege', provolatile => 's', prorettype => 'bool',
6834  proargtypes => 'oid text', prosrc => 'has_function_privilege_id' },
6835
6836{ oid => '2262',
6837  descr => 'user privilege on language by username, language name',
6838  proname => 'has_language_privilege', provolatile => 's', prorettype => 'bool',
6839  proargtypes => 'name text text',
6840  prosrc => 'has_language_privilege_name_name' },
6841{ oid => '2263',
6842  descr => 'user privilege on language by username, language oid',
6843  proname => 'has_language_privilege', provolatile => 's', prorettype => 'bool',
6844  proargtypes => 'name oid text', prosrc => 'has_language_privilege_name_id' },
6845{ oid => '2264',
6846  descr => 'user privilege on language by user oid, language name',
6847  proname => 'has_language_privilege', provolatile => 's', prorettype => 'bool',
6848  proargtypes => 'oid text text', prosrc => 'has_language_privilege_id_name' },
6849{ oid => '2265',
6850  descr => 'user privilege on language by user oid, language oid',
6851  proname => 'has_language_privilege', provolatile => 's', prorettype => 'bool',
6852  proargtypes => 'oid oid text', prosrc => 'has_language_privilege_id_id' },
6853{ oid => '2266',
6854  descr => 'current user privilege on language by language name',
6855  proname => 'has_language_privilege', provolatile => 's', prorettype => 'bool',
6856  proargtypes => 'text text', prosrc => 'has_language_privilege_name' },
6857{ oid => '2267',
6858  descr => 'current user privilege on language by language oid',
6859  proname => 'has_language_privilege', provolatile => 's', prorettype => 'bool',
6860  proargtypes => 'oid text', prosrc => 'has_language_privilege_id' },
6861
6862{ oid => '2268', descr => 'user privilege on schema by username, schema name',
6863  proname => 'has_schema_privilege', provolatile => 's', prorettype => 'bool',
6864  proargtypes => 'name text text', prosrc => 'has_schema_privilege_name_name' },
6865{ oid => '2269', descr => 'user privilege on schema by username, schema oid',
6866  proname => 'has_schema_privilege', provolatile => 's', prorettype => 'bool',
6867  proargtypes => 'name oid text', prosrc => 'has_schema_privilege_name_id' },
6868{ oid => '2270', descr => 'user privilege on schema by user oid, schema name',
6869  proname => 'has_schema_privilege', provolatile => 's', prorettype => 'bool',
6870  proargtypes => 'oid text text', prosrc => 'has_schema_privilege_id_name' },
6871{ oid => '2271', descr => 'user privilege on schema by user oid, schema oid',
6872  proname => 'has_schema_privilege', provolatile => 's', prorettype => 'bool',
6873  proargtypes => 'oid oid text', prosrc => 'has_schema_privilege_id_id' },
6874{ oid => '2272', descr => 'current user privilege on schema by schema name',
6875  proname => 'has_schema_privilege', provolatile => 's', prorettype => 'bool',
6876  proargtypes => 'text text', prosrc => 'has_schema_privilege_name' },
6877{ oid => '2273', descr => 'current user privilege on schema by schema oid',
6878  proname => 'has_schema_privilege', provolatile => 's', prorettype => 'bool',
6879  proargtypes => 'oid text', prosrc => 'has_schema_privilege_id' },
6880
6881{ oid => '2390',
6882  descr => 'user privilege on tablespace by username, tablespace name',
6883  proname => 'has_tablespace_privilege', provolatile => 's',
6884  prorettype => 'bool', proargtypes => 'name text text',
6885  prosrc => 'has_tablespace_privilege_name_name' },
6886{ oid => '2391',
6887  descr => 'user privilege on tablespace by username, tablespace oid',
6888  proname => 'has_tablespace_privilege', provolatile => 's',
6889  prorettype => 'bool', proargtypes => 'name oid text',
6890  prosrc => 'has_tablespace_privilege_name_id' },
6891{ oid => '2392',
6892  descr => 'user privilege on tablespace by user oid, tablespace name',
6893  proname => 'has_tablespace_privilege', provolatile => 's',
6894  prorettype => 'bool', proargtypes => 'oid text text',
6895  prosrc => 'has_tablespace_privilege_id_name' },
6896{ oid => '2393',
6897  descr => 'user privilege on tablespace by user oid, tablespace oid',
6898  proname => 'has_tablespace_privilege', provolatile => 's',
6899  prorettype => 'bool', proargtypes => 'oid oid text',
6900  prosrc => 'has_tablespace_privilege_id_id' },
6901{ oid => '2394',
6902  descr => 'current user privilege on tablespace by tablespace name',
6903  proname => 'has_tablespace_privilege', provolatile => 's',
6904  prorettype => 'bool', proargtypes => 'text text',
6905  prosrc => 'has_tablespace_privilege_name' },
6906{ oid => '2395',
6907  descr => 'current user privilege on tablespace by tablespace oid',
6908  proname => 'has_tablespace_privilege', provolatile => 's',
6909  prorettype => 'bool', proargtypes => 'oid text',
6910  prosrc => 'has_tablespace_privilege_id' },
6911
6912{ oid => '3000',
6913  descr => 'user privilege on foreign data wrapper by username, foreign data wrapper name',
6914  proname => 'has_foreign_data_wrapper_privilege', provolatile => 's',
6915  prorettype => 'bool', proargtypes => 'name text text',
6916  prosrc => 'has_foreign_data_wrapper_privilege_name_name' },
6917{ oid => '3001',
6918  descr => 'user privilege on foreign data wrapper by username, foreign data wrapper oid',
6919  proname => 'has_foreign_data_wrapper_privilege', provolatile => 's',
6920  prorettype => 'bool', proargtypes => 'name oid text',
6921  prosrc => 'has_foreign_data_wrapper_privilege_name_id' },
6922{ oid => '3002',
6923  descr => 'user privilege on foreign data wrapper by user oid, foreign data wrapper name',
6924  proname => 'has_foreign_data_wrapper_privilege', provolatile => 's',
6925  prorettype => 'bool', proargtypes => 'oid text text',
6926  prosrc => 'has_foreign_data_wrapper_privilege_id_name' },
6927{ oid => '3003',
6928  descr => 'user privilege on foreign data wrapper by user oid, foreign data wrapper oid',
6929  proname => 'has_foreign_data_wrapper_privilege', provolatile => 's',
6930  prorettype => 'bool', proargtypes => 'oid oid text',
6931  prosrc => 'has_foreign_data_wrapper_privilege_id_id' },
6932{ oid => '3004',
6933  descr => 'current user privilege on foreign data wrapper by foreign data wrapper name',
6934  proname => 'has_foreign_data_wrapper_privilege', provolatile => 's',
6935  prorettype => 'bool', proargtypes => 'text text',
6936  prosrc => 'has_foreign_data_wrapper_privilege_name' },
6937{ oid => '3005',
6938  descr => 'current user privilege on foreign data wrapper by foreign data wrapper oid',
6939  proname => 'has_foreign_data_wrapper_privilege', provolatile => 's',
6940  prorettype => 'bool', proargtypes => 'oid text',
6941  prosrc => 'has_foreign_data_wrapper_privilege_id' },
6942
6943{ oid => '3006', descr => 'user privilege on server by username, server name',
6944  proname => 'has_server_privilege', provolatile => 's', prorettype => 'bool',
6945  proargtypes => 'name text text', prosrc => 'has_server_privilege_name_name' },
6946{ oid => '3007', descr => 'user privilege on server by username, server oid',
6947  proname => 'has_server_privilege', provolatile => 's', prorettype => 'bool',
6948  proargtypes => 'name oid text', prosrc => 'has_server_privilege_name_id' },
6949{ oid => '3008', descr => 'user privilege on server by user oid, server name',
6950  proname => 'has_server_privilege', provolatile => 's', prorettype => 'bool',
6951  proargtypes => 'oid text text', prosrc => 'has_server_privilege_id_name' },
6952{ oid => '3009', descr => 'user privilege on server by user oid, server oid',
6953  proname => 'has_server_privilege', provolatile => 's', prorettype => 'bool',
6954  proargtypes => 'oid oid text', prosrc => 'has_server_privilege_id_id' },
6955{ oid => '3010', descr => 'current user privilege on server by server name',
6956  proname => 'has_server_privilege', provolatile => 's', prorettype => 'bool',
6957  proargtypes => 'text text', prosrc => 'has_server_privilege_name' },
6958{ oid => '3011', descr => 'current user privilege on server by server oid',
6959  proname => 'has_server_privilege', provolatile => 's', prorettype => 'bool',
6960  proargtypes => 'oid text', prosrc => 'has_server_privilege_id' },
6961
6962{ oid => '3138', descr => 'user privilege on type by username, type name',
6963  proname => 'has_type_privilege', provolatile => 's', prorettype => 'bool',
6964  proargtypes => 'name text text', prosrc => 'has_type_privilege_name_name' },
6965{ oid => '3139', descr => 'user privilege on type by username, type oid',
6966  proname => 'has_type_privilege', provolatile => 's', prorettype => 'bool',
6967  proargtypes => 'name oid text', prosrc => 'has_type_privilege_name_id' },
6968{ oid => '3140', descr => 'user privilege on type by user oid, type name',
6969  proname => 'has_type_privilege', provolatile => 's', prorettype => 'bool',
6970  proargtypes => 'oid text text', prosrc => 'has_type_privilege_id_name' },
6971{ oid => '3141', descr => 'user privilege on type by user oid, type oid',
6972  proname => 'has_type_privilege', provolatile => 's', prorettype => 'bool',
6973  proargtypes => 'oid oid text', prosrc => 'has_type_privilege_id_id' },
6974{ oid => '3142', descr => 'current user privilege on type by type name',
6975  proname => 'has_type_privilege', provolatile => 's', prorettype => 'bool',
6976  proargtypes => 'text text', prosrc => 'has_type_privilege_name' },
6977{ oid => '3143', descr => 'current user privilege on type by type oid',
6978  proname => 'has_type_privilege', provolatile => 's', prorettype => 'bool',
6979  proargtypes => 'oid text', prosrc => 'has_type_privilege_id' },
6980
6981{ oid => '2705', descr => 'user privilege on role by username, role name',
6982  proname => 'pg_has_role', provolatile => 's', prorettype => 'bool',
6983  proargtypes => 'name name text', prosrc => 'pg_has_role_name_name' },
6984{ oid => '2706', descr => 'user privilege on role by username, role oid',
6985  proname => 'pg_has_role', provolatile => 's', prorettype => 'bool',
6986  proargtypes => 'name oid text', prosrc => 'pg_has_role_name_id' },
6987{ oid => '2707', descr => 'user privilege on role by user oid, role name',
6988  proname => 'pg_has_role', provolatile => 's', prorettype => 'bool',
6989  proargtypes => 'oid name text', prosrc => 'pg_has_role_id_name' },
6990{ oid => '2708', descr => 'user privilege on role by user oid, role oid',
6991  proname => 'pg_has_role', provolatile => 's', prorettype => 'bool',
6992  proargtypes => 'oid oid text', prosrc => 'pg_has_role_id_id' },
6993{ oid => '2709', descr => 'current user privilege on role by role name',
6994  proname => 'pg_has_role', provolatile => 's', prorettype => 'bool',
6995  proargtypes => 'name text', prosrc => 'pg_has_role_name' },
6996{ oid => '2710', descr => 'current user privilege on role by role oid',
6997  proname => 'pg_has_role', provolatile => 's', prorettype => 'bool',
6998  proargtypes => 'oid text', prosrc => 'pg_has_role_id' },
6999
7000{ oid => '1269',
7001  descr => 'bytes required to store the value, perhaps with compression',
7002  proname => 'pg_column_size', provolatile => 's', prorettype => 'int4',
7003  proargtypes => 'any', prosrc => 'pg_column_size' },
7004{ oid => '2322',
7005  descr => 'total disk space usage for the specified tablespace',
7006  proname => 'pg_tablespace_size', provolatile => 'v', prorettype => 'int8',
7007  proargtypes => 'oid', prosrc => 'pg_tablespace_size_oid' },
7008{ oid => '2323',
7009  descr => 'total disk space usage for the specified tablespace',
7010  proname => 'pg_tablespace_size', provolatile => 'v', prorettype => 'int8',
7011  proargtypes => 'name', prosrc => 'pg_tablespace_size_name' },
7012{ oid => '2324', descr => 'total disk space usage for the specified database',
7013  proname => 'pg_database_size', provolatile => 'v', prorettype => 'int8',
7014  proargtypes => 'oid', prosrc => 'pg_database_size_oid' },
7015{ oid => '2168', descr => 'total disk space usage for the specified database',
7016  proname => 'pg_database_size', provolatile => 'v', prorettype => 'int8',
7017  proargtypes => 'name', prosrc => 'pg_database_size_name' },
7018{ oid => '2325',
7019  descr => 'disk space usage for the main fork of the specified table or index',
7020  proname => 'pg_relation_size', prolang => 'sql', provolatile => 'v',
7021  prorettype => 'int8', proargtypes => 'regclass',
7022  prosrc => 'select pg_catalog.pg_relation_size($1, \'main\')' },
7023{ oid => '2332',
7024  descr => 'disk space usage for the specified fork of a table or index',
7025  proname => 'pg_relation_size', provolatile => 'v', prorettype => 'int8',
7026  proargtypes => 'regclass text', prosrc => 'pg_relation_size' },
7027{ oid => '2286',
7028  descr => 'total disk space usage for the specified table and associated indexes',
7029  proname => 'pg_total_relation_size', provolatile => 'v', prorettype => 'int8',
7030  proargtypes => 'regclass', prosrc => 'pg_total_relation_size' },
7031{ oid => '2288',
7032  descr => 'convert a long int to a human readable text using size units',
7033  proname => 'pg_size_pretty', prorettype => 'text', proargtypes => 'int8',
7034  prosrc => 'pg_size_pretty' },
7035{ oid => '3166',
7036  descr => 'convert a numeric to a human readable text using size units',
7037  proname => 'pg_size_pretty', prorettype => 'text', proargtypes => 'numeric',
7038  prosrc => 'pg_size_pretty_numeric' },
7039{ oid => '3334',
7040  descr => 'convert a size in human-readable format with size units into bytes',
7041  proname => 'pg_size_bytes', prorettype => 'int8', proargtypes => 'text',
7042  prosrc => 'pg_size_bytes' },
7043{ oid => '2997',
7044  descr => 'disk space usage for the specified table, including TOAST, free space and visibility map',
7045  proname => 'pg_table_size', provolatile => 'v', prorettype => 'int8',
7046  proargtypes => 'regclass', prosrc => 'pg_table_size' },
7047{ oid => '2998',
7048  descr => 'disk space usage for all indexes attached to the specified table',
7049  proname => 'pg_indexes_size', provolatile => 'v', prorettype => 'int8',
7050  proargtypes => 'regclass', prosrc => 'pg_indexes_size' },
7051{ oid => '2999', descr => 'filenode identifier of relation',
7052  proname => 'pg_relation_filenode', provolatile => 's', prorettype => 'oid',
7053  proargtypes => 'regclass', prosrc => 'pg_relation_filenode' },
7054{ oid => '3454', descr => 'relation OID for filenode and tablespace',
7055  proname => 'pg_filenode_relation', provolatile => 's',
7056  prorettype => 'regclass', proargtypes => 'oid oid',
7057  prosrc => 'pg_filenode_relation' },
7058{ oid => '3034', descr => 'file path of relation',
7059  proname => 'pg_relation_filepath', provolatile => 's', prorettype => 'text',
7060  proargtypes => 'regclass', prosrc => 'pg_relation_filepath' },
7061
7062{ oid => '2316', descr => '(internal)',
7063  proname => 'postgresql_fdw_validator', prorettype => 'bool',
7064  proargtypes => '_text oid', prosrc => 'postgresql_fdw_validator' },
7065
7066{ oid => '2290', descr => 'I/O',
7067  proname => 'record_in', provolatile => 's', prorettype => 'record',
7068  proargtypes => 'cstring oid int4', prosrc => 'record_in' },
7069{ oid => '2291', descr => 'I/O',
7070  proname => 'record_out', provolatile => 's', prorettype => 'cstring',
7071  proargtypes => 'record', prosrc => 'record_out' },
7072{ oid => '2292', descr => 'I/O',
7073  proname => 'cstring_in', prorettype => 'cstring', proargtypes => 'cstring',
7074  prosrc => 'cstring_in' },
7075{ oid => '2293', descr => 'I/O',
7076  proname => 'cstring_out', prorettype => 'cstring', proargtypes => 'cstring',
7077  prosrc => 'cstring_out' },
7078{ oid => '2294', descr => 'I/O',
7079  proname => 'any_in', prorettype => 'any', proargtypes => 'cstring',
7080  prosrc => 'any_in' },
7081{ oid => '2295', descr => 'I/O',
7082  proname => 'any_out', prorettype => 'cstring', proargtypes => 'any',
7083  prosrc => 'any_out' },
7084{ oid => '2296', descr => 'I/O',
7085  proname => 'anyarray_in', prorettype => 'anyarray', proargtypes => 'cstring',
7086  prosrc => 'anyarray_in' },
7087{ oid => '2297', descr => 'I/O',
7088  proname => 'anyarray_out', provolatile => 's', prorettype => 'cstring',
7089  proargtypes => 'anyarray', prosrc => 'anyarray_out' },
7090{ oid => '2298', descr => 'I/O',
7091  proname => 'void_in', prorettype => 'void', proargtypes => 'cstring',
7092  prosrc => 'void_in' },
7093{ oid => '2299', descr => 'I/O',
7094  proname => 'void_out', prorettype => 'cstring', proargtypes => 'void',
7095  prosrc => 'void_out' },
7096{ oid => '2300', descr => 'I/O',
7097  proname => 'trigger_in', proisstrict => 'f', prorettype => 'trigger',
7098  proargtypes => 'cstring', prosrc => 'trigger_in' },
7099{ oid => '2301', descr => 'I/O',
7100  proname => 'trigger_out', prorettype => 'cstring', proargtypes => 'trigger',
7101  prosrc => 'trigger_out' },
7102{ oid => '3594', descr => 'I/O',
7103  proname => 'event_trigger_in', proisstrict => 'f',
7104  prorettype => 'event_trigger', proargtypes => 'cstring',
7105  prosrc => 'event_trigger_in' },
7106{ oid => '3595', descr => 'I/O',
7107  proname => 'event_trigger_out', prorettype => 'cstring',
7108  proargtypes => 'event_trigger', prosrc => 'event_trigger_out' },
7109{ oid => '2302', descr => 'I/O',
7110  proname => 'language_handler_in', proisstrict => 'f',
7111  prorettype => 'language_handler', proargtypes => 'cstring',
7112  prosrc => 'language_handler_in' },
7113{ oid => '2303', descr => 'I/O',
7114  proname => 'language_handler_out', prorettype => 'cstring',
7115  proargtypes => 'language_handler', prosrc => 'language_handler_out' },
7116{ oid => '2304', descr => 'I/O',
7117  proname => 'internal_in', proisstrict => 'f', prorettype => 'internal',
7118  proargtypes => 'cstring', prosrc => 'internal_in' },
7119{ oid => '2305', descr => 'I/O',
7120  proname => 'internal_out', prorettype => 'cstring', proargtypes => 'internal',
7121  prosrc => 'internal_out' },
7122{ oid => '2312', descr => 'I/O',
7123  proname => 'anyelement_in', prorettype => 'anyelement',
7124  proargtypes => 'cstring', prosrc => 'anyelement_in' },
7125{ oid => '2313', descr => 'I/O',
7126  proname => 'anyelement_out', prorettype => 'cstring',
7127  proargtypes => 'anyelement', prosrc => 'anyelement_out' },
7128{ oid => '2398', descr => 'I/O',
7129  proname => 'shell_in', proisstrict => 'f', prorettype => 'void',
7130  proargtypes => 'cstring', prosrc => 'shell_in' },
7131{ oid => '2399', descr => 'I/O',
7132  proname => 'shell_out', prorettype => 'cstring', proargtypes => 'void',
7133  prosrc => 'shell_out' },
7134{ oid => '2597', descr => 'I/O',
7135  proname => 'domain_in', proisstrict => 'f', provolatile => 's',
7136  prorettype => 'any', proargtypes => 'cstring oid int4',
7137  prosrc => 'domain_in' },
7138{ oid => '2598', descr => 'I/O',
7139  proname => 'domain_recv', proisstrict => 'f', provolatile => 's',
7140  prorettype => 'any', proargtypes => 'internal oid int4',
7141  prosrc => 'domain_recv' },
7142{ oid => '2777', descr => 'I/O',
7143  proname => 'anynonarray_in', prorettype => 'anynonarray',
7144  proargtypes => 'cstring', prosrc => 'anynonarray_in' },
7145{ oid => '2778', descr => 'I/O',
7146  proname => 'anynonarray_out', prorettype => 'cstring',
7147  proargtypes => 'anynonarray', prosrc => 'anynonarray_out' },
7148{ oid => '3116', descr => 'I/O',
7149  proname => 'fdw_handler_in', proisstrict => 'f', prorettype => 'fdw_handler',
7150  proargtypes => 'cstring', prosrc => 'fdw_handler_in' },
7151{ oid => '3117', descr => 'I/O',
7152  proname => 'fdw_handler_out', prorettype => 'cstring',
7153  proargtypes => 'fdw_handler', prosrc => 'fdw_handler_out' },
7154{ oid => '326', descr => 'I/O',
7155  proname => 'index_am_handler_in', proisstrict => 'f',
7156  prorettype => 'index_am_handler', proargtypes => 'cstring',
7157  prosrc => 'index_am_handler_in' },
7158{ oid => '327', descr => 'I/O',
7159  proname => 'index_am_handler_out', prorettype => 'cstring',
7160  proargtypes => 'index_am_handler', prosrc => 'index_am_handler_out' },
7161{ oid => '3311', descr => 'I/O',
7162  proname => 'tsm_handler_in', proisstrict => 'f', prorettype => 'tsm_handler',
7163  proargtypes => 'cstring', prosrc => 'tsm_handler_in' },
7164{ oid => '3312', descr => 'I/O',
7165  proname => 'tsm_handler_out', prorettype => 'cstring',
7166  proargtypes => 'tsm_handler', prosrc => 'tsm_handler_out' },
7167{ oid => '267', descr => 'I/O',
7168  proname => 'table_am_handler_in', proisstrict => 'f',
7169  prorettype => 'table_am_handler', proargtypes => 'cstring',
7170  prosrc => 'table_am_handler_in' },
7171{ oid => '268', descr => 'I/O',
7172  proname => 'table_am_handler_out', prorettype => 'cstring',
7173  proargtypes => 'table_am_handler', prosrc => 'table_am_handler_out' },
7174{ oid => '5086', descr => 'I/O',
7175  proname => 'anycompatible_in', prorettype => 'anycompatible',
7176  proargtypes => 'cstring', prosrc => 'anycompatible_in' },
7177{ oid => '5087', descr => 'I/O',
7178  proname => 'anycompatible_out', prorettype => 'cstring',
7179  proargtypes => 'anycompatible', prosrc => 'anycompatible_out' },
7180{ oid => '5088', descr => 'I/O',
7181  proname => 'anycompatiblearray_in', prorettype => 'anycompatiblearray',
7182  proargtypes => 'cstring', prosrc => 'anycompatiblearray_in' },
7183{ oid => '5089', descr => 'I/O',
7184  proname => 'anycompatiblearray_out', provolatile => 's',
7185  prorettype => 'cstring', proargtypes => 'anycompatiblearray',
7186  prosrc => 'anycompatiblearray_out' },
7187{ oid => '5090', descr => 'I/O',
7188  proname => 'anycompatiblearray_recv', provolatile => 's',
7189  prorettype => 'anycompatiblearray', proargtypes => 'internal',
7190  prosrc => 'anycompatiblearray_recv' },
7191{ oid => '5091', descr => 'I/O',
7192  proname => 'anycompatiblearray_send', provolatile => 's',
7193  prorettype => 'bytea', proargtypes => 'anycompatiblearray',
7194  prosrc => 'anycompatiblearray_send' },
7195{ oid => '5092', descr => 'I/O',
7196  proname => 'anycompatiblenonarray_in', prorettype => 'anycompatiblenonarray',
7197  proargtypes => 'cstring', prosrc => 'anycompatiblenonarray_in' },
7198{ oid => '5093', descr => 'I/O',
7199  proname => 'anycompatiblenonarray_out', prorettype => 'cstring',
7200  proargtypes => 'anycompatiblenonarray',
7201  prosrc => 'anycompatiblenonarray_out' },
7202{ oid => '5094', descr => 'I/O',
7203  proname => 'anycompatiblerange_in', provolatile => 's',
7204  prorettype => 'anycompatiblerange', proargtypes => 'cstring oid int4',
7205  prosrc => 'anycompatiblerange_in' },
7206{ oid => '5095', descr => 'I/O',
7207  proname => 'anycompatiblerange_out', provolatile => 's',
7208  prorettype => 'cstring', proargtypes => 'anycompatiblerange',
7209  prosrc => 'anycompatiblerange_out' },
7210
7211# tablesample method handlers
7212{ oid => '3313', descr => 'BERNOULLI tablesample method handler',
7213  proname => 'bernoulli', provolatile => 'v', prorettype => 'tsm_handler',
7214  proargtypes => 'internal', prosrc => 'tsm_bernoulli_handler' },
7215{ oid => '3314', descr => 'SYSTEM tablesample method handler',
7216  proname => 'system', provolatile => 'v', prorettype => 'tsm_handler',
7217  proargtypes => 'internal', prosrc => 'tsm_system_handler' },
7218
7219# cryptographic
7220{ oid => '2311', descr => 'MD5 hash',
7221  proname => 'md5', proleakproof => 't', prorettype => 'text',
7222  proargtypes => 'text', prosrc => 'md5_text' },
7223{ oid => '2321', descr => 'MD5 hash',
7224  proname => 'md5', proleakproof => 't', prorettype => 'text',
7225  proargtypes => 'bytea', prosrc => 'md5_bytea' },
7226{ oid => '3419', descr => 'SHA-224 hash',
7227  proname => 'sha224', proleakproof => 't', prorettype => 'bytea',
7228  proargtypes => 'bytea', prosrc => 'sha224_bytea' },
7229{ oid => '3420', descr => 'SHA-256 hash',
7230  proname => 'sha256', proleakproof => 't', prorettype => 'bytea',
7231  proargtypes => 'bytea', prosrc => 'sha256_bytea' },
7232{ oid => '3421', descr => 'SHA-384 hash',
7233  proname => 'sha384', proleakproof => 't', prorettype => 'bytea',
7234  proargtypes => 'bytea', prosrc => 'sha384_bytea' },
7235{ oid => '3422', descr => 'SHA-512 hash',
7236  proname => 'sha512', proleakproof => 't', prorettype => 'bytea',
7237  proargtypes => 'bytea', prosrc => 'sha512_bytea' },
7238
7239# crosstype operations for date vs. timestamp and timestamptz
7240{ oid => '2338',
7241  proname => 'date_lt_timestamp', prorettype => 'bool',
7242  proargtypes => 'date timestamp', prosrc => 'date_lt_timestamp' },
7243{ oid => '2339',
7244  proname => 'date_le_timestamp', prorettype => 'bool',
7245  proargtypes => 'date timestamp', prosrc => 'date_le_timestamp' },
7246{ oid => '2340',
7247  proname => 'date_eq_timestamp', prorettype => 'bool',
7248  proargtypes => 'date timestamp', prosrc => 'date_eq_timestamp' },
7249{ oid => '2341',
7250  proname => 'date_gt_timestamp', prorettype => 'bool',
7251  proargtypes => 'date timestamp', prosrc => 'date_gt_timestamp' },
7252{ oid => '2342',
7253  proname => 'date_ge_timestamp', prorettype => 'bool',
7254  proargtypes => 'date timestamp', prosrc => 'date_ge_timestamp' },
7255{ oid => '2343',
7256  proname => 'date_ne_timestamp', prorettype => 'bool',
7257  proargtypes => 'date timestamp', prosrc => 'date_ne_timestamp' },
7258{ oid => '2344', descr => 'less-equal-greater',
7259  proname => 'date_cmp_timestamp', prorettype => 'int4',
7260  proargtypes => 'date timestamp', prosrc => 'date_cmp_timestamp' },
7261
7262{ oid => '2351',
7263  proname => 'date_lt_timestamptz', provolatile => 's', prorettype => 'bool',
7264  proargtypes => 'date timestamptz', prosrc => 'date_lt_timestamptz' },
7265{ oid => '2352',
7266  proname => 'date_le_timestamptz', provolatile => 's', prorettype => 'bool',
7267  proargtypes => 'date timestamptz', prosrc => 'date_le_timestamptz' },
7268{ oid => '2353',
7269  proname => 'date_eq_timestamptz', provolatile => 's', prorettype => 'bool',
7270  proargtypes => 'date timestamptz', prosrc => 'date_eq_timestamptz' },
7271{ oid => '2354',
7272  proname => 'date_gt_timestamptz', provolatile => 's', prorettype => 'bool',
7273  proargtypes => 'date timestamptz', prosrc => 'date_gt_timestamptz' },
7274{ oid => '2355',
7275  proname => 'date_ge_timestamptz', provolatile => 's', prorettype => 'bool',
7276  proargtypes => 'date timestamptz', prosrc => 'date_ge_timestamptz' },
7277{ oid => '2356',
7278  proname => 'date_ne_timestamptz', provolatile => 's', prorettype => 'bool',
7279  proargtypes => 'date timestamptz', prosrc => 'date_ne_timestamptz' },
7280{ oid => '2357', descr => 'less-equal-greater',
7281  proname => 'date_cmp_timestamptz', provolatile => 's', prorettype => 'int4',
7282  proargtypes => 'date timestamptz', prosrc => 'date_cmp_timestamptz' },
7283
7284{ oid => '2364',
7285  proname => 'timestamp_lt_date', prorettype => 'bool',
7286  proargtypes => 'timestamp date', prosrc => 'timestamp_lt_date' },
7287{ oid => '2365',
7288  proname => 'timestamp_le_date', prorettype => 'bool',
7289  proargtypes => 'timestamp date', prosrc => 'timestamp_le_date' },
7290{ oid => '2366',
7291  proname => 'timestamp_eq_date', prorettype => 'bool',
7292  proargtypes => 'timestamp date', prosrc => 'timestamp_eq_date' },
7293{ oid => '2367',
7294  proname => 'timestamp_gt_date', prorettype => 'bool',
7295  proargtypes => 'timestamp date', prosrc => 'timestamp_gt_date' },
7296{ oid => '2368',
7297  proname => 'timestamp_ge_date', prorettype => 'bool',
7298  proargtypes => 'timestamp date', prosrc => 'timestamp_ge_date' },
7299{ oid => '2369',
7300  proname => 'timestamp_ne_date', prorettype => 'bool',
7301  proargtypes => 'timestamp date', prosrc => 'timestamp_ne_date' },
7302{ oid => '2370', descr => 'less-equal-greater',
7303  proname => 'timestamp_cmp_date', prorettype => 'int4',
7304  proargtypes => 'timestamp date', prosrc => 'timestamp_cmp_date' },
7305
7306{ oid => '2377',
7307  proname => 'timestamptz_lt_date', provolatile => 's', prorettype => 'bool',
7308  proargtypes => 'timestamptz date', prosrc => 'timestamptz_lt_date' },
7309{ oid => '2378',
7310  proname => 'timestamptz_le_date', provolatile => 's', prorettype => 'bool',
7311  proargtypes => 'timestamptz date', prosrc => 'timestamptz_le_date' },
7312{ oid => '2379',
7313  proname => 'timestamptz_eq_date', provolatile => 's', prorettype => 'bool',
7314  proargtypes => 'timestamptz date', prosrc => 'timestamptz_eq_date' },
7315{ oid => '2380',
7316  proname => 'timestamptz_gt_date', provolatile => 's', prorettype => 'bool',
7317  proargtypes => 'timestamptz date', prosrc => 'timestamptz_gt_date' },
7318{ oid => '2381',
7319  proname => 'timestamptz_ge_date', provolatile => 's', prorettype => 'bool',
7320  proargtypes => 'timestamptz date', prosrc => 'timestamptz_ge_date' },
7321{ oid => '2382',
7322  proname => 'timestamptz_ne_date', provolatile => 's', prorettype => 'bool',
7323  proargtypes => 'timestamptz date', prosrc => 'timestamptz_ne_date' },
7324{ oid => '2383', descr => 'less-equal-greater',
7325  proname => 'timestamptz_cmp_date', provolatile => 's', prorettype => 'int4',
7326  proargtypes => 'timestamptz date', prosrc => 'timestamptz_cmp_date' },
7327
7328# crosstype operations for timestamp vs. timestamptz
7329{ oid => '2520',
7330  proname => 'timestamp_lt_timestamptz', provolatile => 's',
7331  prorettype => 'bool', proargtypes => 'timestamp timestamptz',
7332  prosrc => 'timestamp_lt_timestamptz' },
7333{ oid => '2521',
7334  proname => 'timestamp_le_timestamptz', provolatile => 's',
7335  prorettype => 'bool', proargtypes => 'timestamp timestamptz',
7336  prosrc => 'timestamp_le_timestamptz' },
7337{ oid => '2522',
7338  proname => 'timestamp_eq_timestamptz', provolatile => 's',
7339  prorettype => 'bool', proargtypes => 'timestamp timestamptz',
7340  prosrc => 'timestamp_eq_timestamptz' },
7341{ oid => '2523',
7342  proname => 'timestamp_gt_timestamptz', provolatile => 's',
7343  prorettype => 'bool', proargtypes => 'timestamp timestamptz',
7344  prosrc => 'timestamp_gt_timestamptz' },
7345{ oid => '2524',
7346  proname => 'timestamp_ge_timestamptz', provolatile => 's',
7347  prorettype => 'bool', proargtypes => 'timestamp timestamptz',
7348  prosrc => 'timestamp_ge_timestamptz' },
7349{ oid => '2525',
7350  proname => 'timestamp_ne_timestamptz', provolatile => 's',
7351  prorettype => 'bool', proargtypes => 'timestamp timestamptz',
7352  prosrc => 'timestamp_ne_timestamptz' },
7353{ oid => '2526', descr => 'less-equal-greater',
7354  proname => 'timestamp_cmp_timestamptz', provolatile => 's',
7355  prorettype => 'int4', proargtypes => 'timestamp timestamptz',
7356  prosrc => 'timestamp_cmp_timestamptz' },
7357
7358{ oid => '2527',
7359  proname => 'timestamptz_lt_timestamp', provolatile => 's',
7360  prorettype => 'bool', proargtypes => 'timestamptz timestamp',
7361  prosrc => 'timestamptz_lt_timestamp' },
7362{ oid => '2528',
7363  proname => 'timestamptz_le_timestamp', provolatile => 's',
7364  prorettype => 'bool', proargtypes => 'timestamptz timestamp',
7365  prosrc => 'timestamptz_le_timestamp' },
7366{ oid => '2529',
7367  proname => 'timestamptz_eq_timestamp', provolatile => 's',
7368  prorettype => 'bool', proargtypes => 'timestamptz timestamp',
7369  prosrc => 'timestamptz_eq_timestamp' },
7370{ oid => '2530',
7371  proname => 'timestamptz_gt_timestamp', provolatile => 's',
7372  prorettype => 'bool', proargtypes => 'timestamptz timestamp',
7373  prosrc => 'timestamptz_gt_timestamp' },
7374{ oid => '2531',
7375  proname => 'timestamptz_ge_timestamp', provolatile => 's',
7376  prorettype => 'bool', proargtypes => 'timestamptz timestamp',
7377  prosrc => 'timestamptz_ge_timestamp' },
7378{ oid => '2532',
7379  proname => 'timestamptz_ne_timestamp', provolatile => 's',
7380  prorettype => 'bool', proargtypes => 'timestamptz timestamp',
7381  prosrc => 'timestamptz_ne_timestamp' },
7382{ oid => '2533', descr => 'less-equal-greater',
7383  proname => 'timestamptz_cmp_timestamp', provolatile => 's',
7384  prorettype => 'int4', proargtypes => 'timestamptz timestamp',
7385  prosrc => 'timestamptz_cmp_timestamp' },
7386
7387# send/receive functions
7388{ oid => '2400', descr => 'I/O',
7389  proname => 'array_recv', provolatile => 's', prorettype => 'anyarray',
7390  proargtypes => 'internal oid int4', prosrc => 'array_recv' },
7391{ oid => '2401', descr => 'I/O',
7392  proname => 'array_send', provolatile => 's', prorettype => 'bytea',
7393  proargtypes => 'anyarray', prosrc => 'array_send' },
7394{ oid => '2402', descr => 'I/O',
7395  proname => 'record_recv', provolatile => 's', prorettype => 'record',
7396  proargtypes => 'internal oid int4', prosrc => 'record_recv' },
7397{ oid => '2403', descr => 'I/O',
7398  proname => 'record_send', provolatile => 's', prorettype => 'bytea',
7399  proargtypes => 'record', prosrc => 'record_send' },
7400{ oid => '2404', descr => 'I/O',
7401  proname => 'int2recv', prorettype => 'int2', proargtypes => 'internal',
7402  prosrc => 'int2recv' },
7403{ oid => '2405', descr => 'I/O',
7404  proname => 'int2send', prorettype => 'bytea', proargtypes => 'int2',
7405  prosrc => 'int2send' },
7406{ oid => '2406', descr => 'I/O',
7407  proname => 'int4recv', prorettype => 'int4', proargtypes => 'internal',
7408  prosrc => 'int4recv' },
7409{ oid => '2407', descr => 'I/O',
7410  proname => 'int4send', prorettype => 'bytea', proargtypes => 'int4',
7411  prosrc => 'int4send' },
7412{ oid => '2408', descr => 'I/O',
7413  proname => 'int8recv', prorettype => 'int8', proargtypes => 'internal',
7414  prosrc => 'int8recv' },
7415{ oid => '2409', descr => 'I/O',
7416  proname => 'int8send', prorettype => 'bytea', proargtypes => 'int8',
7417  prosrc => 'int8send' },
7418{ oid => '2410', descr => 'I/O',
7419  proname => 'int2vectorrecv', prorettype => 'int2vector',
7420  proargtypes => 'internal', prosrc => 'int2vectorrecv' },
7421{ oid => '2411', descr => 'I/O',
7422  proname => 'int2vectorsend', prorettype => 'bytea',
7423  proargtypes => 'int2vector', prosrc => 'int2vectorsend' },
7424{ oid => '2412', descr => 'I/O',
7425  proname => 'bytearecv', prorettype => 'bytea', proargtypes => 'internal',
7426  prosrc => 'bytearecv' },
7427{ oid => '2413', descr => 'I/O',
7428  proname => 'byteasend', prorettype => 'bytea', proargtypes => 'bytea',
7429  prosrc => 'byteasend' },
7430{ oid => '2414', descr => 'I/O',
7431  proname => 'textrecv', provolatile => 's', prorettype => 'text',
7432  proargtypes => 'internal', prosrc => 'textrecv' },
7433{ oid => '2415', descr => 'I/O',
7434  proname => 'textsend', provolatile => 's', prorettype => 'bytea',
7435  proargtypes => 'text', prosrc => 'textsend' },
7436{ oid => '2416', descr => 'I/O',
7437  proname => 'unknownrecv', prorettype => 'unknown', proargtypes => 'internal',
7438  prosrc => 'unknownrecv' },
7439{ oid => '2417', descr => 'I/O',
7440  proname => 'unknownsend', prorettype => 'bytea', proargtypes => 'unknown',
7441  prosrc => 'unknownsend' },
7442{ oid => '2418', descr => 'I/O',
7443  proname => 'oidrecv', prorettype => 'oid', proargtypes => 'internal',
7444  prosrc => 'oidrecv' },
7445{ oid => '2419', descr => 'I/O',
7446  proname => 'oidsend', prorettype => 'bytea', proargtypes => 'oid',
7447  prosrc => 'oidsend' },
7448{ oid => '2420', descr => 'I/O',
7449  proname => 'oidvectorrecv', prorettype => 'oidvector',
7450  proargtypes => 'internal', prosrc => 'oidvectorrecv' },
7451{ oid => '2421', descr => 'I/O',
7452  proname => 'oidvectorsend', prorettype => 'bytea', proargtypes => 'oidvector',
7453  prosrc => 'oidvectorsend' },
7454{ oid => '2422', descr => 'I/O',
7455  proname => 'namerecv', provolatile => 's', prorettype => 'name',
7456  proargtypes => 'internal', prosrc => 'namerecv' },
7457{ oid => '2423', descr => 'I/O',
7458  proname => 'namesend', provolatile => 's', prorettype => 'bytea',
7459  proargtypes => 'name', prosrc => 'namesend' },
7460{ oid => '2424', descr => 'I/O',
7461  proname => 'float4recv', prorettype => 'float4', proargtypes => 'internal',
7462  prosrc => 'float4recv' },
7463{ oid => '2425', descr => 'I/O',
7464  proname => 'float4send', prorettype => 'bytea', proargtypes => 'float4',
7465  prosrc => 'float4send' },
7466{ oid => '2426', descr => 'I/O',
7467  proname => 'float8recv', prorettype => 'float8', proargtypes => 'internal',
7468  prosrc => 'float8recv' },
7469{ oid => '2427', descr => 'I/O',
7470  proname => 'float8send', prorettype => 'bytea', proargtypes => 'float8',
7471  prosrc => 'float8send' },
7472{ oid => '2428', descr => 'I/O',
7473  proname => 'point_recv', prorettype => 'point', proargtypes => 'internal',
7474  prosrc => 'point_recv' },
7475{ oid => '2429', descr => 'I/O',
7476  proname => 'point_send', prorettype => 'bytea', proargtypes => 'point',
7477  prosrc => 'point_send' },
7478{ oid => '2430', descr => 'I/O',
7479  proname => 'bpcharrecv', provolatile => 's', prorettype => 'bpchar',
7480  proargtypes => 'internal oid int4', prosrc => 'bpcharrecv' },
7481{ oid => '2431', descr => 'I/O',
7482  proname => 'bpcharsend', provolatile => 's', prorettype => 'bytea',
7483  proargtypes => 'bpchar', prosrc => 'bpcharsend' },
7484{ oid => '2432', descr => 'I/O',
7485  proname => 'varcharrecv', provolatile => 's', prorettype => 'varchar',
7486  proargtypes => 'internal oid int4', prosrc => 'varcharrecv' },
7487{ oid => '2433', descr => 'I/O',
7488  proname => 'varcharsend', provolatile => 's', prorettype => 'bytea',
7489  proargtypes => 'varchar', prosrc => 'varcharsend' },
7490{ oid => '2434', descr => 'I/O',
7491  proname => 'charrecv', prorettype => 'char', proargtypes => 'internal',
7492  prosrc => 'charrecv' },
7493{ oid => '2435', descr => 'I/O',
7494  proname => 'charsend', prorettype => 'bytea', proargtypes => 'char',
7495  prosrc => 'charsend' },
7496{ oid => '2436', descr => 'I/O',
7497  proname => 'boolrecv', prorettype => 'bool', proargtypes => 'internal',
7498  prosrc => 'boolrecv' },
7499{ oid => '2437', descr => 'I/O',
7500  proname => 'boolsend', prorettype => 'bytea', proargtypes => 'bool',
7501  prosrc => 'boolsend' },
7502{ oid => '2438', descr => 'I/O',
7503  proname => 'tidrecv', prorettype => 'tid', proargtypes => 'internal',
7504  prosrc => 'tidrecv' },
7505{ oid => '2439', descr => 'I/O',
7506  proname => 'tidsend', prorettype => 'bytea', proargtypes => 'tid',
7507  prosrc => 'tidsend' },
7508{ oid => '2440', descr => 'I/O',
7509  proname => 'xidrecv', prorettype => 'xid', proargtypes => 'internal',
7510  prosrc => 'xidrecv' },
7511{ oid => '2441', descr => 'I/O',
7512  proname => 'xidsend', prorettype => 'bytea', proargtypes => 'xid',
7513  prosrc => 'xidsend' },
7514{ oid => '2442', descr => 'I/O',
7515  proname => 'cidrecv', prorettype => 'cid', proargtypes => 'internal',
7516  prosrc => 'cidrecv' },
7517{ oid => '2443', descr => 'I/O',
7518  proname => 'cidsend', prorettype => 'bytea', proargtypes => 'cid',
7519  prosrc => 'cidsend' },
7520{ oid => '2444', descr => 'I/O',
7521  proname => 'regprocrecv', prorettype => 'regproc', proargtypes => 'internal',
7522  prosrc => 'regprocrecv' },
7523{ oid => '2445', descr => 'I/O',
7524  proname => 'regprocsend', prorettype => 'bytea', proargtypes => 'regproc',
7525  prosrc => 'regprocsend' },
7526{ oid => '2446', descr => 'I/O',
7527  proname => 'regprocedurerecv', prorettype => 'regprocedure',
7528  proargtypes => 'internal', prosrc => 'regprocedurerecv' },
7529{ oid => '2447', descr => 'I/O',
7530  proname => 'regproceduresend', prorettype => 'bytea',
7531  proargtypes => 'regprocedure', prosrc => 'regproceduresend' },
7532{ oid => '2448', descr => 'I/O',
7533  proname => 'regoperrecv', prorettype => 'regoper', proargtypes => 'internal',
7534  prosrc => 'regoperrecv' },
7535{ oid => '2449', descr => 'I/O',
7536  proname => 'regopersend', prorettype => 'bytea', proargtypes => 'regoper',
7537  prosrc => 'regopersend' },
7538{ oid => '2450', descr => 'I/O',
7539  proname => 'regoperatorrecv', prorettype => 'regoperator',
7540  proargtypes => 'internal', prosrc => 'regoperatorrecv' },
7541{ oid => '2451', descr => 'I/O',
7542  proname => 'regoperatorsend', prorettype => 'bytea',
7543  proargtypes => 'regoperator', prosrc => 'regoperatorsend' },
7544{ oid => '2452', descr => 'I/O',
7545  proname => 'regclassrecv', prorettype => 'regclass',
7546  proargtypes => 'internal', prosrc => 'regclassrecv' },
7547{ oid => '2453', descr => 'I/O',
7548  proname => 'regclasssend', prorettype => 'bytea', proargtypes => 'regclass',
7549  prosrc => 'regclasssend' },
7550{ oid => '4196', descr => 'I/O',
7551  proname => 'regcollationrecv', prorettype => 'regcollation',
7552  proargtypes => 'internal', prosrc => 'regcollationrecv' },
7553{ oid => '4197', descr => 'I/O',
7554  proname => 'regcollationsend', prorettype => 'bytea',
7555  proargtypes => 'regcollation', prosrc => 'regcollationsend' },
7556{ oid => '2454', descr => 'I/O',
7557  proname => 'regtyperecv', prorettype => 'regtype', proargtypes => 'internal',
7558  prosrc => 'regtyperecv' },
7559{ oid => '2455', descr => 'I/O',
7560  proname => 'regtypesend', prorettype => 'bytea', proargtypes => 'regtype',
7561  prosrc => 'regtypesend' },
7562
7563{ oid => '4094', descr => 'I/O',
7564  proname => 'regrolerecv', prorettype => 'regrole', proargtypes => 'internal',
7565  prosrc => 'regrolerecv' },
7566{ oid => '4095', descr => 'I/O',
7567  proname => 'regrolesend', prorettype => 'bytea', proargtypes => 'regrole',
7568  prosrc => 'regrolesend' },
7569{ oid => '4087', descr => 'I/O',
7570  proname => 'regnamespacerecv', prorettype => 'regnamespace',
7571  proargtypes => 'internal', prosrc => 'regnamespacerecv' },
7572{ oid => '4088', descr => 'I/O',
7573  proname => 'regnamespacesend', prorettype => 'bytea',
7574  proargtypes => 'regnamespace', prosrc => 'regnamespacesend' },
7575{ oid => '2456', descr => 'I/O',
7576  proname => 'bit_recv', prorettype => 'bit',
7577  proargtypes => 'internal oid int4', prosrc => 'bit_recv' },
7578{ oid => '2457', descr => 'I/O',
7579  proname => 'bit_send', prorettype => 'bytea', proargtypes => 'bit',
7580  prosrc => 'bit_send' },
7581{ oid => '2458', descr => 'I/O',
7582  proname => 'varbit_recv', prorettype => 'varbit',
7583  proargtypes => 'internal oid int4', prosrc => 'varbit_recv' },
7584{ oid => '2459', descr => 'I/O',
7585  proname => 'varbit_send', prorettype => 'bytea', proargtypes => 'varbit',
7586  prosrc => 'varbit_send' },
7587{ oid => '2460', descr => 'I/O',
7588  proname => 'numeric_recv', prorettype => 'numeric',
7589  proargtypes => 'internal oid int4', prosrc => 'numeric_recv' },
7590{ oid => '2461', descr => 'I/O',
7591  proname => 'numeric_send', prorettype => 'bytea', proargtypes => 'numeric',
7592  prosrc => 'numeric_send' },
7593{ oid => '2468', descr => 'I/O',
7594  proname => 'date_recv', prorettype => 'date', proargtypes => 'internal',
7595  prosrc => 'date_recv' },
7596{ oid => '2469', descr => 'I/O',
7597  proname => 'date_send', prorettype => 'bytea', proargtypes => 'date',
7598  prosrc => 'date_send' },
7599{ oid => '2470', descr => 'I/O',
7600  proname => 'time_recv', prorettype => 'time',
7601  proargtypes => 'internal oid int4', prosrc => 'time_recv' },
7602{ oid => '2471', descr => 'I/O',
7603  proname => 'time_send', prorettype => 'bytea', proargtypes => 'time',
7604  prosrc => 'time_send' },
7605{ oid => '2472', descr => 'I/O',
7606  proname => 'timetz_recv', prorettype => 'timetz',
7607  proargtypes => 'internal oid int4', prosrc => 'timetz_recv' },
7608{ oid => '2473', descr => 'I/O',
7609  proname => 'timetz_send', prorettype => 'bytea', proargtypes => 'timetz',
7610  prosrc => 'timetz_send' },
7611{ oid => '2474', descr => 'I/O',
7612  proname => 'timestamp_recv', prorettype => 'timestamp',
7613  proargtypes => 'internal oid int4', prosrc => 'timestamp_recv' },
7614{ oid => '2475', descr => 'I/O',
7615  proname => 'timestamp_send', prorettype => 'bytea',
7616  proargtypes => 'timestamp', prosrc => 'timestamp_send' },
7617{ oid => '2476', descr => 'I/O',
7618  proname => 'timestamptz_recv', prorettype => 'timestamptz',
7619  proargtypes => 'internal oid int4', prosrc => 'timestamptz_recv' },
7620{ oid => '2477', descr => 'I/O',
7621  proname => 'timestamptz_send', prorettype => 'bytea',
7622  proargtypes => 'timestamptz', prosrc => 'timestamptz_send' },
7623{ oid => '2478', descr => 'I/O',
7624  proname => 'interval_recv', prorettype => 'interval',
7625  proargtypes => 'internal oid int4', prosrc => 'interval_recv' },
7626{ oid => '2479', descr => 'I/O',
7627  proname => 'interval_send', prorettype => 'bytea', proargtypes => 'interval',
7628  prosrc => 'interval_send' },
7629{ oid => '2480', descr => 'I/O',
7630  proname => 'lseg_recv', prorettype => 'lseg', proargtypes => 'internal',
7631  prosrc => 'lseg_recv' },
7632{ oid => '2481', descr => 'I/O',
7633  proname => 'lseg_send', prorettype => 'bytea', proargtypes => 'lseg',
7634  prosrc => 'lseg_send' },
7635{ oid => '2482', descr => 'I/O',
7636  proname => 'path_recv', prorettype => 'path', proargtypes => 'internal',
7637  prosrc => 'path_recv' },
7638{ oid => '2483', descr => 'I/O',
7639  proname => 'path_send', prorettype => 'bytea', proargtypes => 'path',
7640  prosrc => 'path_send' },
7641{ oid => '2484', descr => 'I/O',
7642  proname => 'box_recv', prorettype => 'box', proargtypes => 'internal',
7643  prosrc => 'box_recv' },
7644{ oid => '2485', descr => 'I/O',
7645  proname => 'box_send', prorettype => 'bytea', proargtypes => 'box',
7646  prosrc => 'box_send' },
7647{ oid => '2486', descr => 'I/O',
7648  proname => 'poly_recv', prorettype => 'polygon', proargtypes => 'internal',
7649  prosrc => 'poly_recv' },
7650{ oid => '2487', descr => 'I/O',
7651  proname => 'poly_send', prorettype => 'bytea', proargtypes => 'polygon',
7652  prosrc => 'poly_send' },
7653{ oid => '2488', descr => 'I/O',
7654  proname => 'line_recv', prorettype => 'line', proargtypes => 'internal',
7655  prosrc => 'line_recv' },
7656{ oid => '2489', descr => 'I/O',
7657  proname => 'line_send', prorettype => 'bytea', proargtypes => 'line',
7658  prosrc => 'line_send' },
7659{ oid => '2490', descr => 'I/O',
7660  proname => 'circle_recv', prorettype => 'circle', proargtypes => 'internal',
7661  prosrc => 'circle_recv' },
7662{ oid => '2491', descr => 'I/O',
7663  proname => 'circle_send', prorettype => 'bytea', proargtypes => 'circle',
7664  prosrc => 'circle_send' },
7665{ oid => '2492', descr => 'I/O',
7666  proname => 'cash_recv', prorettype => 'money', proargtypes => 'internal',
7667  prosrc => 'cash_recv' },
7668{ oid => '2493', descr => 'I/O',
7669  proname => 'cash_send', prorettype => 'bytea', proargtypes => 'money',
7670  prosrc => 'cash_send' },
7671{ oid => '2494', descr => 'I/O',
7672  proname => 'macaddr_recv', prorettype => 'macaddr', proargtypes => 'internal',
7673  prosrc => 'macaddr_recv' },
7674{ oid => '2495', descr => 'I/O',
7675  proname => 'macaddr_send', prorettype => 'bytea', proargtypes => 'macaddr',
7676  prosrc => 'macaddr_send' },
7677{ oid => '2496', descr => 'I/O',
7678  proname => 'inet_recv', prorettype => 'inet', proargtypes => 'internal',
7679  prosrc => 'inet_recv' },
7680{ oid => '2497', descr => 'I/O',
7681  proname => 'inet_send', prorettype => 'bytea', proargtypes => 'inet',
7682  prosrc => 'inet_send' },
7683{ oid => '2498', descr => 'I/O',
7684  proname => 'cidr_recv', prorettype => 'cidr', proargtypes => 'internal',
7685  prosrc => 'cidr_recv' },
7686{ oid => '2499', descr => 'I/O',
7687  proname => 'cidr_send', prorettype => 'bytea', proargtypes => 'cidr',
7688  prosrc => 'cidr_send' },
7689{ oid => '2500', descr => 'I/O',
7690  proname => 'cstring_recv', provolatile => 's', prorettype => 'cstring',
7691  proargtypes => 'internal', prosrc => 'cstring_recv' },
7692{ oid => '2501', descr => 'I/O',
7693  proname => 'cstring_send', provolatile => 's', prorettype => 'bytea',
7694  proargtypes => 'cstring', prosrc => 'cstring_send' },
7695{ oid => '2502', descr => 'I/O',
7696  proname => 'anyarray_recv', provolatile => 's', prorettype => 'anyarray',
7697  proargtypes => 'internal', prosrc => 'anyarray_recv' },
7698{ oid => '2503', descr => 'I/O',
7699  proname => 'anyarray_send', provolatile => 's', prorettype => 'bytea',
7700  proargtypes => 'anyarray', prosrc => 'anyarray_send' },
7701{ oid => '3120', descr => 'I/O',
7702  proname => 'void_recv', prorettype => 'void', proargtypes => 'internal',
7703  prosrc => 'void_recv' },
7704{ oid => '3121', descr => 'I/O',
7705  proname => 'void_send', prorettype => 'bytea', proargtypes => 'void',
7706  prosrc => 'void_send' },
7707{ oid => '3446', descr => 'I/O',
7708  proname => 'macaddr8_recv', prorettype => 'macaddr8',
7709  proargtypes => 'internal', prosrc => 'macaddr8_recv' },
7710{ oid => '3447', descr => 'I/O',
7711  proname => 'macaddr8_send', prorettype => 'bytea', proargtypes => 'macaddr8',
7712  prosrc => 'macaddr8_send' },
7713
7714# System-view support functions with pretty-print option
7715{ oid => '2504', descr => 'source text of a rule with pretty-print option',
7716  proname => 'pg_get_ruledef', provolatile => 's', prorettype => 'text',
7717  proargtypes => 'oid bool', prosrc => 'pg_get_ruledef_ext' },
7718{ oid => '2505',
7719  descr => 'select statement of a view with pretty-print option',
7720  proname => 'pg_get_viewdef', provolatile => 's', proparallel => 'r',
7721  prorettype => 'text', proargtypes => 'text bool',
7722  prosrc => 'pg_get_viewdef_name_ext' },
7723{ oid => '2506',
7724  descr => 'select statement of a view with pretty-print option',
7725  proname => 'pg_get_viewdef', provolatile => 's', proparallel => 'r',
7726  prorettype => 'text', proargtypes => 'oid bool',
7727  prosrc => 'pg_get_viewdef_ext' },
7728{ oid => '3159',
7729  descr => 'select statement of a view with pretty-printing and specified line wrapping',
7730  proname => 'pg_get_viewdef', provolatile => 's', proparallel => 'r',
7731  prorettype => 'text', proargtypes => 'oid int4',
7732  prosrc => 'pg_get_viewdef_wrap' },
7733{ oid => '2507',
7734  descr => 'index description (full create statement or single expression) with pretty-print option',
7735  proname => 'pg_get_indexdef', provolatile => 's', prorettype => 'text',
7736  proargtypes => 'oid int4 bool', prosrc => 'pg_get_indexdef_ext' },
7737{ oid => '2508', descr => 'constraint description with pretty-print option',
7738  proname => 'pg_get_constraintdef', provolatile => 's', prorettype => 'text',
7739  proargtypes => 'oid bool', prosrc => 'pg_get_constraintdef_ext' },
7740{ oid => '2509',
7741  descr => 'deparse an encoded expression with pretty-print option',
7742  proname => 'pg_get_expr', provolatile => 's', prorettype => 'text',
7743  proargtypes => 'pg_node_tree oid bool', prosrc => 'pg_get_expr_ext' },
7744{ oid => '2510', descr => 'get the prepared statements for this session',
7745  proname => 'pg_prepared_statement', prorows => '1000', proretset => 't',
7746  provolatile => 's', proparallel => 'r', prorettype => 'record',
7747  proargtypes => '', proallargtypes => '{text,text,timestamptz,_regtype,bool}',
7748  proargmodes => '{o,o,o,o,o}',
7749  proargnames => '{name,statement,prepare_time,parameter_types,from_sql}',
7750  prosrc => 'pg_prepared_statement' },
7751{ oid => '2511', descr => 'get the open cursors for this session',
7752  proname => 'pg_cursor', prorows => '1000', proretset => 't',
7753  provolatile => 's', proparallel => 'r', prorettype => 'record',
7754  proargtypes => '', proallargtypes => '{text,text,bool,bool,bool,timestamptz}',
7755  proargmodes => '{o,o,o,o,o,o}',
7756  proargnames => '{name,statement,is_holdable,is_binary,is_scrollable,creation_time}',
7757  prosrc => 'pg_cursor' },
7758{ oid => '2599', descr => 'get the available time zone abbreviations',
7759  proname => 'pg_timezone_abbrevs', prorows => '1000', proretset => 't',
7760  provolatile => 's', prorettype => 'record', proargtypes => '',
7761  proallargtypes => '{text,interval,bool}', proargmodes => '{o,o,o}',
7762  proargnames => '{abbrev,utc_offset,is_dst}',
7763  prosrc => 'pg_timezone_abbrevs' },
7764{ oid => '2856', descr => 'get the available time zone names',
7765  proname => 'pg_timezone_names', prorows => '1000', proretset => 't',
7766  provolatile => 's', prorettype => 'record', proargtypes => '',
7767  proallargtypes => '{text,text,interval,bool}', proargmodes => '{o,o,o,o}',
7768  proargnames => '{name,abbrev,utc_offset,is_dst}',
7769  prosrc => 'pg_timezone_names' },
7770{ oid => '2730', descr => 'trigger description with pretty-print option',
7771  proname => 'pg_get_triggerdef', provolatile => 's', prorettype => 'text',
7772  proargtypes => 'oid bool', prosrc => 'pg_get_triggerdef_ext' },
7773
7774# asynchronous notifications
7775{ oid => '3035',
7776  descr => 'get the channels that the current backend listens to',
7777  proname => 'pg_listening_channels', prorows => '10', proretset => 't',
7778  provolatile => 's', proparallel => 'r', prorettype => 'text',
7779  proargtypes => '', prosrc => 'pg_listening_channels' },
7780{ oid => '3036', descr => 'send a notification event',
7781  proname => 'pg_notify', proisstrict => 'f', provolatile => 'v',
7782  proparallel => 'r', prorettype => 'void', proargtypes => 'text text',
7783  prosrc => 'pg_notify' },
7784{ oid => '3296',
7785  descr => 'get the fraction of the asynchronous notification queue currently in use',
7786  proname => 'pg_notification_queue_usage', provolatile => 'v',
7787  proparallel => 'r', prorettype => 'float8', proargtypes => '',
7788  prosrc => 'pg_notification_queue_usage' },
7789
7790# shared memory usage
7791{ oid => '5052', descr => 'allocations from the main shared memory segment',
7792  proname => 'pg_get_shmem_allocations', prorows => '50', proretset => 't',
7793  provolatile => 'v', prorettype => 'record', proargtypes => '',
7794  proallargtypes => '{text,int8,int8,int8}', proargmodes => '{o,o,o,o}',
7795  proargnames => '{name,off,size,allocated_size}',
7796  prosrc => 'pg_get_shmem_allocations' },
7797
7798# non-persistent series generator
7799{ oid => '1066', descr => 'non-persistent series generator',
7800  proname => 'generate_series', prorows => '1000',
7801  prosupport => 'generate_series_int4_support', proretset => 't',
7802  prorettype => 'int4', proargtypes => 'int4 int4 int4',
7803  prosrc => 'generate_series_step_int4' },
7804{ oid => '1067', descr => 'non-persistent series generator',
7805  proname => 'generate_series', prorows => '1000',
7806  prosupport => 'generate_series_int4_support', proretset => 't',
7807  prorettype => 'int4', proargtypes => 'int4 int4',
7808  prosrc => 'generate_series_int4' },
7809{ oid => '3994', descr => 'planner support for generate_series',
7810  proname => 'generate_series_int4_support', prorettype => 'internal',
7811  proargtypes => 'internal', prosrc => 'generate_series_int4_support' },
7812{ oid => '1068', descr => 'non-persistent series generator',
7813  proname => 'generate_series', prorows => '1000',
7814  prosupport => 'generate_series_int8_support', proretset => 't',
7815  prorettype => 'int8', proargtypes => 'int8 int8 int8',
7816  prosrc => 'generate_series_step_int8' },
7817{ oid => '1069', descr => 'non-persistent series generator',
7818  proname => 'generate_series', prorows => '1000',
7819  prosupport => 'generate_series_int8_support', proretset => 't',
7820  prorettype => 'int8', proargtypes => 'int8 int8',
7821  prosrc => 'generate_series_int8' },
7822{ oid => '3995', descr => 'planner support for generate_series',
7823  proname => 'generate_series_int8_support', prorettype => 'internal',
7824  proargtypes => 'internal', prosrc => 'generate_series_int8_support' },
7825{ oid => '3259', descr => 'non-persistent series generator',
7826  proname => 'generate_series', prorows => '1000', proretset => 't',
7827  prorettype => 'numeric', proargtypes => 'numeric numeric numeric',
7828  prosrc => 'generate_series_step_numeric' },
7829{ oid => '3260', descr => 'non-persistent series generator',
7830  proname => 'generate_series', prorows => '1000', proretset => 't',
7831  prorettype => 'numeric', proargtypes => 'numeric numeric',
7832  prosrc => 'generate_series_numeric' },
7833{ oid => '938', descr => 'non-persistent series generator',
7834  proname => 'generate_series', prorows => '1000', proretset => 't',
7835  prorettype => 'timestamp', proargtypes => 'timestamp timestamp interval',
7836  prosrc => 'generate_series_timestamp' },
7837{ oid => '939', descr => 'non-persistent series generator',
7838  proname => 'generate_series', prorows => '1000', proretset => 't',
7839  provolatile => 's', prorettype => 'timestamptz',
7840  proargtypes => 'timestamptz timestamptz interval',
7841  prosrc => 'generate_series_timestamptz' },
7842
7843# boolean aggregates
7844{ oid => '2515', descr => 'aggregate transition function',
7845  proname => 'booland_statefunc', prorettype => 'bool',
7846  proargtypes => 'bool bool', prosrc => 'booland_statefunc' },
7847{ oid => '2516', descr => 'aggregate transition function',
7848  proname => 'boolor_statefunc', prorettype => 'bool',
7849  proargtypes => 'bool bool', prosrc => 'boolor_statefunc' },
7850{ oid => '3496', descr => 'aggregate transition function',
7851  proname => 'bool_accum', proisstrict => 'f', prorettype => 'internal',
7852  proargtypes => 'internal bool', prosrc => 'bool_accum' },
7853{ oid => '3497', descr => 'aggregate transition function',
7854  proname => 'bool_accum_inv', proisstrict => 'f', prorettype => 'internal',
7855  proargtypes => 'internal bool', prosrc => 'bool_accum_inv' },
7856{ oid => '3498', descr => 'aggregate final function',
7857  proname => 'bool_alltrue', prorettype => 'bool', proargtypes => 'internal',
7858  prosrc => 'bool_alltrue' },
7859{ oid => '3499', descr => 'aggregate final function',
7860  proname => 'bool_anytrue', prorettype => 'bool', proargtypes => 'internal',
7861  prosrc => 'bool_anytrue' },
7862{ oid => '2517', descr => 'boolean-and aggregate',
7863  proname => 'bool_and', prokind => 'a', proisstrict => 'f',
7864  prorettype => 'bool', proargtypes => 'bool', prosrc => 'aggregate_dummy' },
7865
7866# ANY, SOME? These names conflict with subquery operators. See doc.
7867{ oid => '2518', descr => 'boolean-or aggregate',
7868  proname => 'bool_or', prokind => 'a', proisstrict => 'f',
7869  prorettype => 'bool', proargtypes => 'bool', prosrc => 'aggregate_dummy' },
7870{ oid => '2519', descr => 'boolean-and aggregate',
7871  proname => 'every', prokind => 'a', proisstrict => 'f', prorettype => 'bool',
7872  proargtypes => 'bool', prosrc => 'aggregate_dummy' },
7873
7874# bitwise integer aggregates
7875{ oid => '2236', descr => 'bitwise-and smallint aggregate',
7876  proname => 'bit_and', prokind => 'a', proisstrict => 'f',
7877  prorettype => 'int2', proargtypes => 'int2', prosrc => 'aggregate_dummy' },
7878{ oid => '2237', descr => 'bitwise-or smallint aggregate',
7879  proname => 'bit_or', prokind => 'a', proisstrict => 'f', prorettype => 'int2',
7880  proargtypes => 'int2', prosrc => 'aggregate_dummy' },
7881{ oid => '2238', descr => 'bitwise-and integer aggregate',
7882  proname => 'bit_and', prokind => 'a', proisstrict => 'f',
7883  prorettype => 'int4', proargtypes => 'int4', prosrc => 'aggregate_dummy' },
7884{ oid => '2239', descr => 'bitwise-or integer aggregate',
7885  proname => 'bit_or', prokind => 'a', proisstrict => 'f', prorettype => 'int4',
7886  proargtypes => 'int4', prosrc => 'aggregate_dummy' },
7887{ oid => '2240', descr => 'bitwise-and bigint aggregate',
7888  proname => 'bit_and', prokind => 'a', proisstrict => 'f',
7889  prorettype => 'int8', proargtypes => 'int8', prosrc => 'aggregate_dummy' },
7890{ oid => '2241', descr => 'bitwise-or bigint aggregate',
7891  proname => 'bit_or', prokind => 'a', proisstrict => 'f', prorettype => 'int8',
7892  proargtypes => 'int8', prosrc => 'aggregate_dummy' },
7893{ oid => '2242', descr => 'bitwise-and bit aggregate',
7894  proname => 'bit_and', prokind => 'a', proisstrict => 'f', prorettype => 'bit',
7895  proargtypes => 'bit', prosrc => 'aggregate_dummy' },
7896{ oid => '2243', descr => 'bitwise-or bit aggregate',
7897  proname => 'bit_or', prokind => 'a', proisstrict => 'f', prorettype => 'bit',
7898  proargtypes => 'bit', prosrc => 'aggregate_dummy' },
7899
7900# formerly-missing interval + datetime operators
7901{ oid => '2546',
7902  proname => 'interval_pl_date', prolang => 'sql', prorettype => 'timestamp',
7903  proargtypes => 'interval date', prosrc => 'select $2 + $1' },
7904{ oid => '2547',
7905  proname => 'interval_pl_timetz', prolang => 'sql', prorettype => 'timetz',
7906  proargtypes => 'interval timetz', prosrc => 'select $2 + $1' },
7907{ oid => '2548',
7908  proname => 'interval_pl_timestamp', prolang => 'sql',
7909  prorettype => 'timestamp', proargtypes => 'interval timestamp',
7910  prosrc => 'select $2 + $1' },
7911{ oid => '2549',
7912  proname => 'interval_pl_timestamptz', prolang => 'sql', provolatile => 's',
7913  prorettype => 'timestamptz', proargtypes => 'interval timestamptz',
7914  prosrc => 'select $2 + $1' },
7915{ oid => '2550',
7916  proname => 'integer_pl_date', prolang => 'sql', prorettype => 'date',
7917  proargtypes => 'int4 date', prosrc => 'select $2 + $1' },
7918
7919{ oid => '2556', descr => 'get OIDs of databases in a tablespace',
7920  proname => 'pg_tablespace_databases', prorows => '1000', proretset => 't',
7921  provolatile => 's', prorettype => 'oid', proargtypes => 'oid',
7922  prosrc => 'pg_tablespace_databases' },
7923
7924{ oid => '2557', descr => 'convert int4 to boolean',
7925  proname => 'bool', prorettype => 'bool', proargtypes => 'int4',
7926  prosrc => 'int4_bool' },
7927{ oid => '2558', descr => 'convert boolean to int4',
7928  proname => 'int4', prorettype => 'int4', proargtypes => 'bool',
7929  prosrc => 'bool_int4' },
7930{ oid => '2559', descr => 'current value from last used sequence',
7931  proname => 'lastval', provolatile => 'v', proparallel => 'u',
7932  prorettype => 'int8', proargtypes => '', prosrc => 'lastval' },
7933
7934# start time function
7935{ oid => '2560', descr => 'postmaster start time',
7936  proname => 'pg_postmaster_start_time', provolatile => 's',
7937  prorettype => 'timestamptz', proargtypes => '',
7938  prosrc => 'pg_postmaster_start_time' },
7939
7940# config reload time function
7941{ oid => '2034', descr => 'configuration load time',
7942  proname => 'pg_conf_load_time', provolatile => 's', proparallel => 'r',
7943  prorettype => 'timestamptz', proargtypes => '',
7944  prosrc => 'pg_conf_load_time' },
7945
7946# new functions for Y-direction rtree opclasses
7947{ oid => '2562',
7948  proname => 'box_below', prorettype => 'bool', proargtypes => 'box box',
7949  prosrc => 'box_below' },
7950{ oid => '2563',
7951  proname => 'box_overbelow', prorettype => 'bool', proargtypes => 'box box',
7952  prosrc => 'box_overbelow' },
7953{ oid => '2564',
7954  proname => 'box_overabove', prorettype => 'bool', proargtypes => 'box box',
7955  prosrc => 'box_overabove' },
7956{ oid => '2565',
7957  proname => 'box_above', prorettype => 'bool', proargtypes => 'box box',
7958  prosrc => 'box_above' },
7959{ oid => '2566',
7960  proname => 'poly_below', prorettype => 'bool',
7961  proargtypes => 'polygon polygon', prosrc => 'poly_below' },
7962{ oid => '2567',
7963  proname => 'poly_overbelow', prorettype => 'bool',
7964  proargtypes => 'polygon polygon', prosrc => 'poly_overbelow' },
7965{ oid => '2568',
7966  proname => 'poly_overabove', prorettype => 'bool',
7967  proargtypes => 'polygon polygon', prosrc => 'poly_overabove' },
7968{ oid => '2569',
7969  proname => 'poly_above', prorettype => 'bool',
7970  proargtypes => 'polygon polygon', prosrc => 'poly_above' },
7971{ oid => '2587',
7972  proname => 'circle_overbelow', prorettype => 'bool',
7973  proargtypes => 'circle circle', prosrc => 'circle_overbelow' },
7974{ oid => '2588',
7975  proname => 'circle_overabove', prorettype => 'bool',
7976  proargtypes => 'circle circle', prosrc => 'circle_overabove' },
7977
7978# support functions for GiST r-tree emulation
7979{ oid => '2578', descr => 'GiST support',
7980  proname => 'gist_box_consistent', prorettype => 'bool',
7981  proargtypes => 'internal box int2 oid internal',
7982  prosrc => 'gist_box_consistent' },
7983{ oid => '2581', descr => 'GiST support',
7984  proname => 'gist_box_penalty', prorettype => 'internal',
7985  proargtypes => 'internal internal internal', prosrc => 'gist_box_penalty' },
7986{ oid => '2582', descr => 'GiST support',
7987  proname => 'gist_box_picksplit', prorettype => 'internal',
7988  proargtypes => 'internal internal', prosrc => 'gist_box_picksplit' },
7989{ oid => '2583', descr => 'GiST support',
7990  proname => 'gist_box_union', prorettype => 'box',
7991  proargtypes => 'internal internal', prosrc => 'gist_box_union' },
7992{ oid => '2584', descr => 'GiST support',
7993  proname => 'gist_box_same', prorettype => 'internal',
7994  proargtypes => 'box box internal', prosrc => 'gist_box_same' },
7995{ oid => '3998', descr => 'GiST support',
7996  proname => 'gist_box_distance', prorettype => 'float8',
7997  proargtypes => 'internal box int2 oid internal',
7998  prosrc => 'gist_box_distance' },
7999{ oid => '2585', descr => 'GiST support',
8000  proname => 'gist_poly_consistent', prorettype => 'bool',
8001  proargtypes => 'internal polygon int2 oid internal',
8002  prosrc => 'gist_poly_consistent' },
8003{ oid => '2586', descr => 'GiST support',
8004  proname => 'gist_poly_compress', prorettype => 'internal',
8005  proargtypes => 'internal', prosrc => 'gist_poly_compress' },
8006{ oid => '2591', descr => 'GiST support',
8007  proname => 'gist_circle_consistent', prorettype => 'bool',
8008  proargtypes => 'internal circle int2 oid internal',
8009  prosrc => 'gist_circle_consistent' },
8010{ oid => '2592', descr => 'GiST support',
8011  proname => 'gist_circle_compress', prorettype => 'internal',
8012  proargtypes => 'internal', prosrc => 'gist_circle_compress' },
8013{ oid => '1030', descr => 'GiST support',
8014  proname => 'gist_point_compress', prorettype => 'internal',
8015  proargtypes => 'internal', prosrc => 'gist_point_compress' },
8016{ oid => '3282', descr => 'GiST support',
8017  proname => 'gist_point_fetch', prorettype => 'internal',
8018  proargtypes => 'internal', prosrc => 'gist_point_fetch' },
8019{ oid => '2179', descr => 'GiST support',
8020  proname => 'gist_point_consistent', prorettype => 'bool',
8021  proargtypes => 'internal point int2 oid internal',
8022  prosrc => 'gist_point_consistent' },
8023{ oid => '3064', descr => 'GiST support',
8024  proname => 'gist_point_distance', prorettype => 'float8',
8025  proargtypes => 'internal point int2 oid internal',
8026  prosrc => 'gist_point_distance' },
8027{ oid => '3280', descr => 'GiST support',
8028  proname => 'gist_circle_distance', prorettype => 'float8',
8029  proargtypes => 'internal circle int2 oid internal',
8030  prosrc => 'gist_circle_distance' },
8031{ oid => '3288', descr => 'GiST support',
8032  proname => 'gist_poly_distance', prorettype => 'float8',
8033  proargtypes => 'internal polygon int2 oid internal',
8034  prosrc => 'gist_poly_distance' },
8035
8036# GIN array support
8037{ oid => '2743', descr => 'GIN array support',
8038  proname => 'ginarrayextract', prorettype => 'internal',
8039  proargtypes => 'anyarray internal internal', prosrc => 'ginarrayextract' },
8040{ oid => '2774', descr => 'GIN array support',
8041  proname => 'ginqueryarrayextract', prorettype => 'internal',
8042  proargtypes => 'anyarray internal int2 internal internal internal internal',
8043  prosrc => 'ginqueryarrayextract' },
8044{ oid => '2744', descr => 'GIN array support',
8045  proname => 'ginarrayconsistent', prorettype => 'bool',
8046  proargtypes => 'internal int2 anyarray int4 internal internal internal internal',
8047  prosrc => 'ginarrayconsistent' },
8048{ oid => '3920', descr => 'GIN array support',
8049  proname => 'ginarraytriconsistent', prorettype => 'char',
8050  proargtypes => 'internal int2 anyarray int4 internal internal internal',
8051  prosrc => 'ginarraytriconsistent' },
8052{ oid => '3076', descr => 'GIN array support (obsolete)',
8053  proname => 'ginarrayextract', prorettype => 'internal',
8054  proargtypes => 'anyarray internal', prosrc => 'ginarrayextract_2args' },
8055
8056# overlap/contains/contained
8057{ oid => '2747',
8058  proname => 'arrayoverlap', prorettype => 'bool',
8059  proargtypes => 'anyarray anyarray', prosrc => 'arrayoverlap' },
8060{ oid => '2748',
8061  proname => 'arraycontains', prorettype => 'bool',
8062  proargtypes => 'anyarray anyarray', prosrc => 'arraycontains' },
8063{ oid => '2749',
8064  proname => 'arraycontained', prorettype => 'bool',
8065  proargtypes => 'anyarray anyarray', prosrc => 'arraycontained' },
8066
8067# BRIN minmax
8068{ oid => '3383', descr => 'BRIN minmax support',
8069  proname => 'brin_minmax_opcinfo', prorettype => 'internal',
8070  proargtypes => 'internal', prosrc => 'brin_minmax_opcinfo' },
8071{ oid => '3384', descr => 'BRIN minmax support',
8072  proname => 'brin_minmax_add_value', prorettype => 'bool',
8073  proargtypes => 'internal internal internal internal',
8074  prosrc => 'brin_minmax_add_value' },
8075{ oid => '3385', descr => 'BRIN minmax support',
8076  proname => 'brin_minmax_consistent', prorettype => 'bool',
8077  proargtypes => 'internal internal internal',
8078  prosrc => 'brin_minmax_consistent' },
8079{ oid => '3386', descr => 'BRIN minmax support',
8080  proname => 'brin_minmax_union', prorettype => 'bool',
8081  proargtypes => 'internal internal internal', prosrc => 'brin_minmax_union' },
8082
8083# BRIN inclusion
8084{ oid => '4105', descr => 'BRIN inclusion support',
8085  proname => 'brin_inclusion_opcinfo', prorettype => 'internal',
8086  proargtypes => 'internal', prosrc => 'brin_inclusion_opcinfo' },
8087{ oid => '4106', descr => 'BRIN inclusion support',
8088  proname => 'brin_inclusion_add_value', prorettype => 'bool',
8089  proargtypes => 'internal internal internal internal',
8090  prosrc => 'brin_inclusion_add_value' },
8091{ oid => '4107', descr => 'BRIN inclusion support',
8092  proname => 'brin_inclusion_consistent', prorettype => 'bool',
8093  proargtypes => 'internal internal internal',
8094  prosrc => 'brin_inclusion_consistent' },
8095{ oid => '4108', descr => 'BRIN inclusion support',
8096  proname => 'brin_inclusion_union', prorettype => 'bool',
8097  proargtypes => 'internal internal internal',
8098  prosrc => 'brin_inclusion_union' },
8099
8100# userlock replacements
8101{ oid => '2880', descr => 'obtain exclusive advisory lock',
8102  proname => 'pg_advisory_lock', provolatile => 'v', proparallel => 'r',
8103  prorettype => 'void', proargtypes => 'int8',
8104  prosrc => 'pg_advisory_lock_int8' },
8105{ oid => '3089', descr => 'obtain exclusive advisory lock',
8106  proname => 'pg_advisory_xact_lock', provolatile => 'v', proparallel => 'r',
8107  prorettype => 'void', proargtypes => 'int8',
8108  prosrc => 'pg_advisory_xact_lock_int8' },
8109{ oid => '2881', descr => 'obtain shared advisory lock',
8110  proname => 'pg_advisory_lock_shared', provolatile => 'v', proparallel => 'r',
8111  prorettype => 'void', proargtypes => 'int8',
8112  prosrc => 'pg_advisory_lock_shared_int8' },
8113{ oid => '3090', descr => 'obtain shared advisory lock',
8114  proname => 'pg_advisory_xact_lock_shared', provolatile => 'v',
8115  proparallel => 'r', prorettype => 'void', proargtypes => 'int8',
8116  prosrc => 'pg_advisory_xact_lock_shared_int8' },
8117{ oid => '2882', descr => 'obtain exclusive advisory lock if available',
8118  proname => 'pg_try_advisory_lock', provolatile => 'v', proparallel => 'r',
8119  prorettype => 'bool', proargtypes => 'int8',
8120  prosrc => 'pg_try_advisory_lock_int8' },
8121{ oid => '3091', descr => 'obtain exclusive advisory lock if available',
8122  proname => 'pg_try_advisory_xact_lock', provolatile => 'v',
8123  proparallel => 'r', prorettype => 'bool', proargtypes => 'int8',
8124  prosrc => 'pg_try_advisory_xact_lock_int8' },
8125{ oid => '2883', descr => 'obtain shared advisory lock if available',
8126  proname => 'pg_try_advisory_lock_shared', provolatile => 'v',
8127  proparallel => 'r', prorettype => 'bool', proargtypes => 'int8',
8128  prosrc => 'pg_try_advisory_lock_shared_int8' },
8129{ oid => '3092', descr => 'obtain shared advisory lock if available',
8130  proname => 'pg_try_advisory_xact_lock_shared', provolatile => 'v',
8131  proparallel => 'r', prorettype => 'bool', proargtypes => 'int8',
8132  prosrc => 'pg_try_advisory_xact_lock_shared_int8' },
8133{ oid => '2884', descr => 'release exclusive advisory lock',
8134  proname => 'pg_advisory_unlock', provolatile => 'v', proparallel => 'r',
8135  prorettype => 'bool', proargtypes => 'int8',
8136  prosrc => 'pg_advisory_unlock_int8' },
8137{ oid => '2885', descr => 'release shared advisory lock',
8138  proname => 'pg_advisory_unlock_shared', provolatile => 'v',
8139  proparallel => 'r', prorettype => 'bool', proargtypes => 'int8',
8140  prosrc => 'pg_advisory_unlock_shared_int8' },
8141{ oid => '2886', descr => 'obtain exclusive advisory lock',
8142  proname => 'pg_advisory_lock', provolatile => 'v', proparallel => 'r',
8143  prorettype => 'void', proargtypes => 'int4 int4',
8144  prosrc => 'pg_advisory_lock_int4' },
8145{ oid => '3093', descr => 'obtain exclusive advisory lock',
8146  proname => 'pg_advisory_xact_lock', provolatile => 'v', proparallel => 'r',
8147  prorettype => 'void', proargtypes => 'int4 int4',
8148  prosrc => 'pg_advisory_xact_lock_int4' },
8149{ oid => '2887', descr => 'obtain shared advisory lock',
8150  proname => 'pg_advisory_lock_shared', provolatile => 'v', proparallel => 'r',
8151  prorettype => 'void', proargtypes => 'int4 int4',
8152  prosrc => 'pg_advisory_lock_shared_int4' },
8153{ oid => '3094', descr => 'obtain shared advisory lock',
8154  proname => 'pg_advisory_xact_lock_shared', provolatile => 'v',
8155  proparallel => 'r', prorettype => 'void', proargtypes => 'int4 int4',
8156  prosrc => 'pg_advisory_xact_lock_shared_int4' },
8157{ oid => '2888', descr => 'obtain exclusive advisory lock if available',
8158  proname => 'pg_try_advisory_lock', provolatile => 'v', proparallel => 'r',
8159  prorettype => 'bool', proargtypes => 'int4 int4',
8160  prosrc => 'pg_try_advisory_lock_int4' },
8161{ oid => '3095', descr => 'obtain exclusive advisory lock if available',
8162  proname => 'pg_try_advisory_xact_lock', provolatile => 'v',
8163  proparallel => 'r', prorettype => 'bool', proargtypes => 'int4 int4',
8164  prosrc => 'pg_try_advisory_xact_lock_int4' },
8165{ oid => '2889', descr => 'obtain shared advisory lock if available',
8166  proname => 'pg_try_advisory_lock_shared', provolatile => 'v',
8167  proparallel => 'r', prorettype => 'bool', proargtypes => 'int4 int4',
8168  prosrc => 'pg_try_advisory_lock_shared_int4' },
8169{ oid => '3096', descr => 'obtain shared advisory lock if available',
8170  proname => 'pg_try_advisory_xact_lock_shared', provolatile => 'v',
8171  proparallel => 'r', prorettype => 'bool', proargtypes => 'int4 int4',
8172  prosrc => 'pg_try_advisory_xact_lock_shared_int4' },
8173{ oid => '2890', descr => 'release exclusive advisory lock',
8174  proname => 'pg_advisory_unlock', provolatile => 'v', proparallel => 'r',
8175  prorettype => 'bool', proargtypes => 'int4 int4',
8176  prosrc => 'pg_advisory_unlock_int4' },
8177{ oid => '2891', descr => 'release shared advisory lock',
8178  proname => 'pg_advisory_unlock_shared', provolatile => 'v',
8179  proparallel => 'r', prorettype => 'bool', proargtypes => 'int4 int4',
8180  prosrc => 'pg_advisory_unlock_shared_int4' },
8181{ oid => '2892', descr => 'release all advisory locks',
8182  proname => 'pg_advisory_unlock_all', provolatile => 'v', proparallel => 'r',
8183  prorettype => 'void', proargtypes => '', prosrc => 'pg_advisory_unlock_all' },
8184
8185# XML support
8186{ oid => '2893', descr => 'I/O',
8187  proname => 'xml_in', provolatile => 's', prorettype => 'xml',
8188  proargtypes => 'cstring', prosrc => 'xml_in' },
8189{ oid => '2894', descr => 'I/O',
8190  proname => 'xml_out', prorettype => 'cstring', proargtypes => 'xml',
8191  prosrc => 'xml_out' },
8192{ oid => '2895', descr => 'generate XML comment',
8193  proname => 'xmlcomment', prorettype => 'xml', proargtypes => 'text',
8194  prosrc => 'xmlcomment' },
8195{ oid => '2896',
8196  descr => 'perform a non-validating parse of a character string to produce an XML value',
8197  proname => 'xml', provolatile => 's', prorettype => 'xml',
8198  proargtypes => 'text', prosrc => 'texttoxml' },
8199{ oid => '2897', descr => 'validate an XML value',
8200  proname => 'xmlvalidate', prorettype => 'bool', proargtypes => 'xml text',
8201  prosrc => 'xmlvalidate' },
8202{ oid => '2898', descr => 'I/O',
8203  proname => 'xml_recv', provolatile => 's', prorettype => 'xml',
8204  proargtypes => 'internal', prosrc => 'xml_recv' },
8205{ oid => '2899', descr => 'I/O',
8206  proname => 'xml_send', provolatile => 's', prorettype => 'bytea',
8207  proargtypes => 'xml', prosrc => 'xml_send' },
8208{ oid => '2900', descr => 'aggregate transition function',
8209  proname => 'xmlconcat2', proisstrict => 'f', prorettype => 'xml',
8210  proargtypes => 'xml xml', prosrc => 'xmlconcat2' },
8211{ oid => '2901', descr => 'concatenate XML values',
8212  proname => 'xmlagg', prokind => 'a', proisstrict => 'f', prorettype => 'xml',
8213  proargtypes => 'xml', prosrc => 'aggregate_dummy' },
8214{ oid => '2922', descr => 'serialize an XML value to a character string',
8215  proname => 'text', prorettype => 'text', proargtypes => 'xml',
8216  prosrc => 'xmltotext' },
8217
8218{ oid => '2923', descr => 'map table contents to XML',
8219  proname => 'table_to_xml', procost => '100', provolatile => 's',
8220  proparallel => 'r', prorettype => 'xml',
8221  proargtypes => 'regclass bool bool text',
8222  proargnames => '{tbl,nulls,tableforest,targetns}', prosrc => 'table_to_xml' },
8223{ oid => '2924', descr => 'map query result to XML',
8224  proname => 'query_to_xml', procost => '100', provolatile => 'v',
8225  proparallel => 'u', prorettype => 'xml', proargtypes => 'text bool bool text',
8226  proargnames => '{query,nulls,tableforest,targetns}',
8227  prosrc => 'query_to_xml' },
8228{ oid => '2925', descr => 'map rows from cursor to XML',
8229  proname => 'cursor_to_xml', procost => '100', provolatile => 'v',
8230  proparallel => 'u', prorettype => 'xml',
8231  proargtypes => 'refcursor int4 bool bool text',
8232  proargnames => '{cursor,count,nulls,tableforest,targetns}',
8233  prosrc => 'cursor_to_xml' },
8234{ oid => '2926', descr => 'map table structure to XML Schema',
8235  proname => 'table_to_xmlschema', procost => '100', provolatile => 's',
8236  proparallel => 'r', prorettype => 'xml',
8237  proargtypes => 'regclass bool bool text',
8238  proargnames => '{tbl,nulls,tableforest,targetns}',
8239  prosrc => 'table_to_xmlschema' },
8240{ oid => '2927', descr => 'map query result structure to XML Schema',
8241  proname => 'query_to_xmlschema', procost => '100', provolatile => 'v',
8242  proparallel => 'u', prorettype => 'xml', proargtypes => 'text bool bool text',
8243  proargnames => '{query,nulls,tableforest,targetns}',
8244  prosrc => 'query_to_xmlschema' },
8245{ oid => '2928', descr => 'map cursor structure to XML Schema',
8246  proname => 'cursor_to_xmlschema', procost => '100', provolatile => 'v',
8247  proparallel => 'u', prorettype => 'xml',
8248  proargtypes => 'refcursor bool bool text',
8249  proargnames => '{cursor,nulls,tableforest,targetns}',
8250  prosrc => 'cursor_to_xmlschema' },
8251{ oid => '2929',
8252  descr => 'map table contents and structure to XML and XML Schema',
8253  proname => 'table_to_xml_and_xmlschema', procost => '100', provolatile => 's',
8254  proparallel => 'r', prorettype => 'xml',
8255  proargtypes => 'regclass bool bool text',
8256  proargnames => '{tbl,nulls,tableforest,targetns}',
8257  prosrc => 'table_to_xml_and_xmlschema' },
8258{ oid => '2930',
8259  descr => 'map query result and structure to XML and XML Schema',
8260  proname => 'query_to_xml_and_xmlschema', procost => '100', provolatile => 'v',
8261  proparallel => 'u', prorettype => 'xml', proargtypes => 'text bool bool text',
8262  proargnames => '{query,nulls,tableforest,targetns}',
8263  prosrc => 'query_to_xml_and_xmlschema' },
8264
8265{ oid => '2933', descr => 'map schema contents to XML',
8266  proname => 'schema_to_xml', procost => '100', provolatile => 's',
8267  proparallel => 'r', prorettype => 'xml', proargtypes => 'name bool bool text',
8268  proargnames => '{schema,nulls,tableforest,targetns}',
8269  prosrc => 'schema_to_xml' },
8270{ oid => '2934', descr => 'map schema structure to XML Schema',
8271  proname => 'schema_to_xmlschema', procost => '100', provolatile => 's',
8272  proparallel => 'r', prorettype => 'xml', proargtypes => 'name bool bool text',
8273  proargnames => '{schema,nulls,tableforest,targetns}',
8274  prosrc => 'schema_to_xmlschema' },
8275{ oid => '2935',
8276  descr => 'map schema contents and structure to XML and XML Schema',
8277  proname => 'schema_to_xml_and_xmlschema', procost => '100',
8278  provolatile => 's', proparallel => 'r', prorettype => 'xml',
8279  proargtypes => 'name bool bool text',
8280  proargnames => '{schema,nulls,tableforest,targetns}',
8281  prosrc => 'schema_to_xml_and_xmlschema' },
8282
8283{ oid => '2936', descr => 'map database contents to XML',
8284  proname => 'database_to_xml', procost => '100', provolatile => 's',
8285  proparallel => 'r', prorettype => 'xml', proargtypes => 'bool bool text',
8286  proargnames => '{nulls,tableforest,targetns}', prosrc => 'database_to_xml' },
8287{ oid => '2937', descr => 'map database structure to XML Schema',
8288  proname => 'database_to_xmlschema', procost => '100', provolatile => 's',
8289  proparallel => 'r', prorettype => 'xml', proargtypes => 'bool bool text',
8290  proargnames => '{nulls,tableforest,targetns}',
8291  prosrc => 'database_to_xmlschema' },
8292{ oid => '2938',
8293  descr => 'map database contents and structure to XML and XML Schema',
8294  proname => 'database_to_xml_and_xmlschema', procost => '100',
8295  provolatile => 's', proparallel => 'r', prorettype => 'xml',
8296  proargtypes => 'bool bool text',
8297  proargnames => '{nulls,tableforest,targetns}',
8298  prosrc => 'database_to_xml_and_xmlschema' },
8299
8300{ oid => '2931',
8301  descr => 'evaluate XPath expression, with namespaces support',
8302  proname => 'xpath', prorettype => '_xml', proargtypes => 'text xml _text',
8303  prosrc => 'xpath' },
8304{ oid => '2932', descr => 'evaluate XPath expression',
8305  proname => 'xpath', prolang => 'sql', prorettype => '_xml',
8306  proargtypes => 'text xml',
8307  prosrc => 'select pg_catalog.xpath($1, $2, \'{}\'::pg_catalog.text[])' },
8308
8309{ oid => '2614', descr => 'test XML value against XPath expression',
8310  proname => 'xmlexists', prorettype => 'bool', proargtypes => 'text xml',
8311  prosrc => 'xmlexists' },
8312
8313{ oid => '3049',
8314  descr => 'test XML value against XPath expression, with namespace support',
8315  proname => 'xpath_exists', prorettype => 'bool',
8316  proargtypes => 'text xml _text', prosrc => 'xpath_exists' },
8317{ oid => '3050', descr => 'test XML value against XPath expression',
8318  proname => 'xpath_exists', prolang => 'sql', prorettype => 'bool',
8319  proargtypes => 'text xml',
8320  prosrc => 'select pg_catalog.xpath_exists($1, $2, \'{}\'::pg_catalog.text[])' },
8321{ oid => '3051', descr => 'determine if a string is well formed XML',
8322  proname => 'xml_is_well_formed', provolatile => 's', prorettype => 'bool',
8323  proargtypes => 'text', prosrc => 'xml_is_well_formed' },
8324{ oid => '3052', descr => 'determine if a string is well formed XML document',
8325  proname => 'xml_is_well_formed_document', prorettype => 'bool',
8326  proargtypes => 'text', prosrc => 'xml_is_well_formed_document' },
8327{ oid => '3053', descr => 'determine if a string is well formed XML content',
8328  proname => 'xml_is_well_formed_content', prorettype => 'bool',
8329  proargtypes => 'text', prosrc => 'xml_is_well_formed_content' },
8330
8331# json
8332{ oid => '321', descr => 'I/O',
8333  proname => 'json_in', prorettype => 'json', proargtypes => 'cstring',
8334  prosrc => 'json_in' },
8335{ oid => '322', descr => 'I/O',
8336  proname => 'json_out', prorettype => 'cstring', proargtypes => 'json',
8337  prosrc => 'json_out' },
8338{ oid => '323', descr => 'I/O',
8339  proname => 'json_recv', prorettype => 'json', proargtypes => 'internal',
8340  prosrc => 'json_recv' },
8341{ oid => '324', descr => 'I/O',
8342  proname => 'json_send', prorettype => 'bytea', proargtypes => 'json',
8343  prosrc => 'json_send' },
8344{ oid => '3153', descr => 'map array to json',
8345  proname => 'array_to_json', provolatile => 's', prorettype => 'json',
8346  proargtypes => 'anyarray', prosrc => 'array_to_json' },
8347{ oid => '3154', descr => 'map array to json with optional pretty printing',
8348  proname => 'array_to_json', provolatile => 's', prorettype => 'json',
8349  proargtypes => 'anyarray bool', prosrc => 'array_to_json_pretty' },
8350{ oid => '3155', descr => 'map row to json',
8351  proname => 'row_to_json', provolatile => 's', prorettype => 'json',
8352  proargtypes => 'record', prosrc => 'row_to_json' },
8353{ oid => '3156', descr => 'map row to json with optional pretty printing',
8354  proname => 'row_to_json', provolatile => 's', prorettype => 'json',
8355  proargtypes => 'record bool', prosrc => 'row_to_json_pretty' },
8356{ oid => '3173', descr => 'json aggregate transition function',
8357  proname => 'json_agg_transfn', proisstrict => 'f', provolatile => 's',
8358  prorettype => 'internal', proargtypes => 'internal anyelement',
8359  prosrc => 'json_agg_transfn' },
8360{ oid => '3174', descr => 'json aggregate final function',
8361  proname => 'json_agg_finalfn', proisstrict => 'f', prorettype => 'json',
8362  proargtypes => 'internal', prosrc => 'json_agg_finalfn' },
8363{ oid => '3175', descr => 'aggregate input into json',
8364  proname => 'json_agg', prokind => 'a', proisstrict => 'f', provolatile => 's',
8365  prorettype => 'json', proargtypes => 'anyelement',
8366  prosrc => 'aggregate_dummy' },
8367{ oid => '3180', descr => 'json object aggregate transition function',
8368  proname => 'json_object_agg_transfn', proisstrict => 'f', provolatile => 's',
8369  prorettype => 'internal', proargtypes => 'internal any any',
8370  prosrc => 'json_object_agg_transfn' },
8371{ oid => '3196', descr => 'json object aggregate final function',
8372  proname => 'json_object_agg_finalfn', proisstrict => 'f',
8373  prorettype => 'json', proargtypes => 'internal',
8374  prosrc => 'json_object_agg_finalfn' },
8375{ oid => '3197', descr => 'aggregate input into a json object',
8376  proname => 'json_object_agg', prokind => 'a', proisstrict => 'f',
8377  provolatile => 's', prorettype => 'json', proargtypes => 'any any',
8378  prosrc => 'aggregate_dummy' },
8379{ oid => '3198', descr => 'build a json array from any inputs',
8380  proname => 'json_build_array', provariadic => 'any', proisstrict => 'f',
8381  provolatile => 's', prorettype => 'json', proargtypes => 'any',
8382  proallargtypes => '{any}', proargmodes => '{v}',
8383  prosrc => 'json_build_array' },
8384{ oid => '3199', descr => 'build an empty json array',
8385  proname => 'json_build_array', proisstrict => 'f', provolatile => 's',
8386  prorettype => 'json', proargtypes => '',
8387  prosrc => 'json_build_array_noargs' },
8388{ oid => '3200',
8389  descr => 'build a json object from pairwise key/value inputs',
8390  proname => 'json_build_object', provariadic => 'any', proisstrict => 'f',
8391  provolatile => 's', prorettype => 'json', proargtypes => 'any',
8392  proallargtypes => '{any}', proargmodes => '{v}',
8393  prosrc => 'json_build_object' },
8394{ oid => '3201', descr => 'build an empty json object',
8395  proname => 'json_build_object', proisstrict => 'f', provolatile => 's',
8396  prorettype => 'json', proargtypes => '',
8397  prosrc => 'json_build_object_noargs' },
8398{ oid => '3202', descr => 'map text array of key value pairs to json object',
8399  proname => 'json_object', prorettype => 'json', proargtypes => '_text',
8400  prosrc => 'json_object' },
8401{ oid => '3203', descr => 'map text arrays of keys and values to json object',
8402  proname => 'json_object', prorettype => 'json', proargtypes => '_text _text',
8403  prosrc => 'json_object_two_arg' },
8404{ oid => '3176', descr => 'map input to json',
8405  proname => 'to_json', provolatile => 's', prorettype => 'json',
8406  proargtypes => 'anyelement', prosrc => 'to_json' },
8407{ oid => '3261', descr => 'remove object fields with null values from json',
8408  proname => 'json_strip_nulls', prorettype => 'json', proargtypes => 'json',
8409  prosrc => 'json_strip_nulls' },
8410
8411{ oid => '3947',
8412  proname => 'json_object_field', prorettype => 'json',
8413  proargtypes => 'json text', proargnames => '{from_json, field_name}',
8414  prosrc => 'json_object_field' },
8415{ oid => '3948',
8416  proname => 'json_object_field_text', prorettype => 'text',
8417  proargtypes => 'json text', proargnames => '{from_json, field_name}',
8418  prosrc => 'json_object_field_text' },
8419{ oid => '3949',
8420  proname => 'json_array_element', prorettype => 'json',
8421  proargtypes => 'json int4', proargnames => '{from_json, element_index}',
8422  prosrc => 'json_array_element' },
8423{ oid => '3950',
8424  proname => 'json_array_element_text', prorettype => 'text',
8425  proargtypes => 'json int4', proargnames => '{from_json, element_index}',
8426  prosrc => 'json_array_element_text' },
8427{ oid => '3951', descr => 'get value from json with path elements',
8428  proname => 'json_extract_path', provariadic => 'text', prorettype => 'json',
8429  proargtypes => 'json _text', proallargtypes => '{json,_text}',
8430  proargmodes => '{i,v}', proargnames => '{from_json,path_elems}',
8431  prosrc => 'json_extract_path' },
8432{ oid => '3953', descr => 'get value from json as text with path elements',
8433  proname => 'json_extract_path_text', provariadic => 'text',
8434  prorettype => 'text', proargtypes => 'json _text',
8435  proallargtypes => '{json,_text}', proargmodes => '{i,v}',
8436  proargnames => '{from_json,path_elems}', prosrc => 'json_extract_path_text' },
8437{ oid => '3955', descr => 'key value pairs of a json object',
8438  proname => 'json_array_elements', prorows => '100', proretset => 't',
8439  prorettype => 'json', proargtypes => 'json', proallargtypes => '{json,json}',
8440  proargmodes => '{i,o}', proargnames => '{from_json,value}',
8441  prosrc => 'json_array_elements' },
8442{ oid => '3969', descr => 'elements of json array',
8443  proname => 'json_array_elements_text', prorows => '100', proretset => 't',
8444  prorettype => 'text', proargtypes => 'json', proallargtypes => '{json,text}',
8445  proargmodes => '{i,o}', proargnames => '{from_json,value}',
8446  prosrc => 'json_array_elements_text' },
8447{ oid => '3956', descr => 'length of json array',
8448  proname => 'json_array_length', prorettype => 'int4', proargtypes => 'json',
8449  prosrc => 'json_array_length' },
8450{ oid => '3957', descr => 'get json object keys',
8451  proname => 'json_object_keys', prorows => '100', proretset => 't',
8452  prorettype => 'text', proargtypes => 'json', prosrc => 'json_object_keys' },
8453{ oid => '3958', descr => 'key value pairs of a json object',
8454  proname => 'json_each', prorows => '100', proretset => 't',
8455  prorettype => 'record', proargtypes => 'json',
8456  proallargtypes => '{json,text,json}', proargmodes => '{i,o,o}',
8457  proargnames => '{from_json,key,value}', prosrc => 'json_each' },
8458{ oid => '3959', descr => 'key value pairs of a json object',
8459  proname => 'json_each_text', prorows => '100', proretset => 't',
8460  prorettype => 'record', proargtypes => 'json',
8461  proallargtypes => '{json,text,text}', proargmodes => '{i,o,o}',
8462  proargnames => '{from_json,key,value}', prosrc => 'json_each_text' },
8463{ oid => '3960', descr => 'get record fields from a json object',
8464  proname => 'json_populate_record', proisstrict => 'f', provolatile => 's',
8465  prorettype => 'anyelement', proargtypes => 'anyelement json bool',
8466  prosrc => 'json_populate_record' },
8467{ oid => '3961',
8468  descr => 'get set of records with fields from a json array of objects',
8469  proname => 'json_populate_recordset', prorows => '100', proisstrict => 'f',
8470  proretset => 't', provolatile => 's', prorettype => 'anyelement',
8471  proargtypes => 'anyelement json bool', prosrc => 'json_populate_recordset' },
8472{ oid => '3204', descr => 'get record fields from a json object',
8473  proname => 'json_to_record', provolatile => 's', prorettype => 'record',
8474  proargtypes => 'json', prosrc => 'json_to_record' },
8475{ oid => '3205',
8476  descr => 'get set of records with fields from a json array of objects',
8477  proname => 'json_to_recordset', prorows => '100', proisstrict => 'f',
8478  proretset => 't', provolatile => 's', prorettype => 'record',
8479  proargtypes => 'json', prosrc => 'json_to_recordset' },
8480{ oid => '3968', descr => 'get the type of a json value',
8481  proname => 'json_typeof', prorettype => 'text', proargtypes => 'json',
8482  prosrc => 'json_typeof' },
8483
8484# uuid
8485{ oid => '2952', descr => 'I/O',
8486  proname => 'uuid_in', prorettype => 'uuid', proargtypes => 'cstring',
8487  prosrc => 'uuid_in' },
8488{ oid => '2953', descr => 'I/O',
8489  proname => 'uuid_out', prorettype => 'cstring', proargtypes => 'uuid',
8490  prosrc => 'uuid_out' },
8491{ oid => '2954',
8492  proname => 'uuid_lt', proleakproof => 't', prorettype => 'bool',
8493  proargtypes => 'uuid uuid', prosrc => 'uuid_lt' },
8494{ oid => '2955',
8495  proname => 'uuid_le', proleakproof => 't', prorettype => 'bool',
8496  proargtypes => 'uuid uuid', prosrc => 'uuid_le' },
8497{ oid => '2956',
8498  proname => 'uuid_eq', proleakproof => 't', prorettype => 'bool',
8499  proargtypes => 'uuid uuid', prosrc => 'uuid_eq' },
8500{ oid => '2957',
8501  proname => 'uuid_ge', proleakproof => 't', prorettype => 'bool',
8502  proargtypes => 'uuid uuid', prosrc => 'uuid_ge' },
8503{ oid => '2958',
8504  proname => 'uuid_gt', proleakproof => 't', prorettype => 'bool',
8505  proargtypes => 'uuid uuid', prosrc => 'uuid_gt' },
8506{ oid => '2959',
8507  proname => 'uuid_ne', proleakproof => 't', prorettype => 'bool',
8508  proargtypes => 'uuid uuid', prosrc => 'uuid_ne' },
8509{ oid => '2960', descr => 'less-equal-greater',
8510  proname => 'uuid_cmp', proleakproof => 't', prorettype => 'int4',
8511  proargtypes => 'uuid uuid', prosrc => 'uuid_cmp' },
8512{ oid => '3300', descr => 'sort support',
8513  proname => 'uuid_sortsupport', prorettype => 'void',
8514  proargtypes => 'internal', prosrc => 'uuid_sortsupport' },
8515{ oid => '2961', descr => 'I/O',
8516  proname => 'uuid_recv', prorettype => 'uuid', proargtypes => 'internal',
8517  prosrc => 'uuid_recv' },
8518{ oid => '2962', descr => 'I/O',
8519  proname => 'uuid_send', prorettype => 'bytea', proargtypes => 'uuid',
8520  prosrc => 'uuid_send' },
8521{ oid => '2963', descr => 'hash',
8522  proname => 'uuid_hash', prorettype => 'int4', proargtypes => 'uuid',
8523  prosrc => 'uuid_hash' },
8524{ oid => '3412', descr => 'hash',
8525  proname => 'uuid_hash_extended', prorettype => 'int8',
8526  proargtypes => 'uuid int8', prosrc => 'uuid_hash_extended' },
8527{ oid => '3432', descr => 'generate random UUID',
8528  proname => 'gen_random_uuid', proleakproof => 't', provolatile => 'v',
8529  prorettype => 'uuid', proargtypes => '', prosrc => 'gen_random_uuid' },
8530
8531# pg_lsn
8532{ oid => '3229', descr => 'I/O',
8533  proname => 'pg_lsn_in', prorettype => 'pg_lsn', proargtypes => 'cstring',
8534  prosrc => 'pg_lsn_in' },
8535{ oid => '3230', descr => 'I/O',
8536  proname => 'pg_lsn_out', prorettype => 'cstring', proargtypes => 'pg_lsn',
8537  prosrc => 'pg_lsn_out' },
8538{ oid => '3231',
8539  proname => 'pg_lsn_lt', proleakproof => 't', prorettype => 'bool',
8540  proargtypes => 'pg_lsn pg_lsn', prosrc => 'pg_lsn_lt' },
8541{ oid => '3232',
8542  proname => 'pg_lsn_le', proleakproof => 't', prorettype => 'bool',
8543  proargtypes => 'pg_lsn pg_lsn', prosrc => 'pg_lsn_le' },
8544{ oid => '3233',
8545  proname => 'pg_lsn_eq', proleakproof => 't', prorettype => 'bool',
8546  proargtypes => 'pg_lsn pg_lsn', prosrc => 'pg_lsn_eq' },
8547{ oid => '3234',
8548  proname => 'pg_lsn_ge', proleakproof => 't', prorettype => 'bool',
8549  proargtypes => 'pg_lsn pg_lsn', prosrc => 'pg_lsn_ge' },
8550{ oid => '3235',
8551  proname => 'pg_lsn_gt', proleakproof => 't', prorettype => 'bool',
8552  proargtypes => 'pg_lsn pg_lsn', prosrc => 'pg_lsn_gt' },
8553{ oid => '3236',
8554  proname => 'pg_lsn_ne', proleakproof => 't', prorettype => 'bool',
8555  proargtypes => 'pg_lsn pg_lsn', prosrc => 'pg_lsn_ne' },
8556{ oid => '3237',
8557  proname => 'pg_lsn_mi', prorettype => 'numeric',
8558  proargtypes => 'pg_lsn pg_lsn', prosrc => 'pg_lsn_mi' },
8559{ oid => '3238', descr => 'I/O',
8560  proname => 'pg_lsn_recv', prorettype => 'pg_lsn', proargtypes => 'internal',
8561  prosrc => 'pg_lsn_recv' },
8562{ oid => '3239', descr => 'I/O',
8563  proname => 'pg_lsn_send', prorettype => 'bytea', proargtypes => 'pg_lsn',
8564  prosrc => 'pg_lsn_send' },
8565{ oid => '3251', descr => 'less-equal-greater',
8566  proname => 'pg_lsn_cmp', proleakproof => 't', prorettype => 'int4',
8567  proargtypes => 'pg_lsn pg_lsn', prosrc => 'pg_lsn_cmp' },
8568{ oid => '3252', descr => 'hash',
8569  proname => 'pg_lsn_hash', prorettype => 'int4', proargtypes => 'pg_lsn',
8570  prosrc => 'pg_lsn_hash' },
8571{ oid => '3413', descr => 'hash',
8572  proname => 'pg_lsn_hash_extended', prorettype => 'int8',
8573  proargtypes => 'pg_lsn int8', prosrc => 'pg_lsn_hash_extended' },
8574{ oid => '4187', descr => 'larger of two',
8575  proname => 'pg_lsn_larger', prorettype => 'pg_lsn',
8576  proargtypes => 'pg_lsn pg_lsn', prosrc => 'pg_lsn_larger' },
8577{ oid => '4188', descr => 'smaller of two',
8578  proname => 'pg_lsn_smaller', prorettype => 'pg_lsn',
8579  proargtypes => 'pg_lsn pg_lsn', prosrc => 'pg_lsn_smaller' },
8580
8581# enum related procs
8582{ oid => '3504', descr => 'I/O',
8583  proname => 'anyenum_in', prorettype => 'anyenum', proargtypes => 'cstring',
8584  prosrc => 'anyenum_in' },
8585{ oid => '3505', descr => 'I/O',
8586  proname => 'anyenum_out', provolatile => 's', prorettype => 'cstring',
8587  proargtypes => 'anyenum', prosrc => 'anyenum_out' },
8588{ oid => '3506', descr => 'I/O',
8589  proname => 'enum_in', provolatile => 's', prorettype => 'anyenum',
8590  proargtypes => 'cstring oid', prosrc => 'enum_in' },
8591{ oid => '3507', descr => 'I/O',
8592  proname => 'enum_out', provolatile => 's', prorettype => 'cstring',
8593  proargtypes => 'anyenum', prosrc => 'enum_out' },
8594{ oid => '3508',
8595  proname => 'enum_eq', prorettype => 'bool', proargtypes => 'anyenum anyenum',
8596  prosrc => 'enum_eq' },
8597{ oid => '3509',
8598  proname => 'enum_ne', prorettype => 'bool', proargtypes => 'anyenum anyenum',
8599  prosrc => 'enum_ne' },
8600{ oid => '3510',
8601  proname => 'enum_lt', prorettype => 'bool', proargtypes => 'anyenum anyenum',
8602  prosrc => 'enum_lt' },
8603{ oid => '3511',
8604  proname => 'enum_gt', prorettype => 'bool', proargtypes => 'anyenum anyenum',
8605  prosrc => 'enum_gt' },
8606{ oid => '3512',
8607  proname => 'enum_le', prorettype => 'bool', proargtypes => 'anyenum anyenum',
8608  prosrc => 'enum_le' },
8609{ oid => '3513',
8610  proname => 'enum_ge', prorettype => 'bool', proargtypes => 'anyenum anyenum',
8611  prosrc => 'enum_ge' },
8612{ oid => '3514', descr => 'less-equal-greater',
8613  proname => 'enum_cmp', prorettype => 'int4', proargtypes => 'anyenum anyenum',
8614  prosrc => 'enum_cmp' },
8615{ oid => '3515', descr => 'hash',
8616  proname => 'hashenum', prorettype => 'int4', proargtypes => 'anyenum',
8617  prosrc => 'hashenum' },
8618{ oid => '3414', descr => 'hash',
8619  proname => 'hashenumextended', prorettype => 'int8',
8620  proargtypes => 'anyenum int8', prosrc => 'hashenumextended' },
8621{ oid => '3524', descr => 'smaller of two',
8622  proname => 'enum_smaller', prorettype => 'anyenum',
8623  proargtypes => 'anyenum anyenum', prosrc => 'enum_smaller' },
8624{ oid => '3525', descr => 'larger of two',
8625  proname => 'enum_larger', prorettype => 'anyenum',
8626  proargtypes => 'anyenum anyenum', prosrc => 'enum_larger' },
8627{ oid => '3526', descr => 'maximum value of all enum input values',
8628  proname => 'max', prokind => 'a', proisstrict => 'f', prorettype => 'anyenum',
8629  proargtypes => 'anyenum', prosrc => 'aggregate_dummy' },
8630{ oid => '3527', descr => 'minimum value of all enum input values',
8631  proname => 'min', prokind => 'a', proisstrict => 'f', prorettype => 'anyenum',
8632  proargtypes => 'anyenum', prosrc => 'aggregate_dummy' },
8633{ oid => '3528', descr => 'first value of the input enum type',
8634  proname => 'enum_first', proisstrict => 'f', provolatile => 's',
8635  prorettype => 'anyenum', proargtypes => 'anyenum', prosrc => 'enum_first' },
8636{ oid => '3529', descr => 'last value of the input enum type',
8637  proname => 'enum_last', proisstrict => 'f', provolatile => 's',
8638  prorettype => 'anyenum', proargtypes => 'anyenum', prosrc => 'enum_last' },
8639{ oid => '3530',
8640  descr => 'range between the two given enum values, as an ordered array',
8641  proname => 'enum_range', proisstrict => 'f', provolatile => 's',
8642  prorettype => 'anyarray', proargtypes => 'anyenum anyenum',
8643  prosrc => 'enum_range_bounds' },
8644{ oid => '3531', descr => 'range of the given enum type, as an ordered array',
8645  proname => 'enum_range', proisstrict => 'f', provolatile => 's',
8646  prorettype => 'anyarray', proargtypes => 'anyenum',
8647  prosrc => 'enum_range_all' },
8648{ oid => '3532', descr => 'I/O',
8649  proname => 'enum_recv', provolatile => 's', prorettype => 'anyenum',
8650  proargtypes => 'internal oid', prosrc => 'enum_recv' },
8651{ oid => '3533', descr => 'I/O',
8652  proname => 'enum_send', provolatile => 's', prorettype => 'bytea',
8653  proargtypes => 'anyenum', prosrc => 'enum_send' },
8654
8655# text search stuff
8656{ oid => '3610', descr => 'I/O',
8657  proname => 'tsvectorin', prorettype => 'tsvector', proargtypes => 'cstring',
8658  prosrc => 'tsvectorin' },
8659{ oid => '3639', descr => 'I/O',
8660  proname => 'tsvectorrecv', prorettype => 'tsvector',
8661  proargtypes => 'internal', prosrc => 'tsvectorrecv' },
8662{ oid => '3611', descr => 'I/O',
8663  proname => 'tsvectorout', prorettype => 'cstring', proargtypes => 'tsvector',
8664  prosrc => 'tsvectorout' },
8665{ oid => '3638', descr => 'I/O',
8666  proname => 'tsvectorsend', prorettype => 'bytea', proargtypes => 'tsvector',
8667  prosrc => 'tsvectorsend' },
8668{ oid => '3612', descr => 'I/O',
8669  proname => 'tsqueryin', prorettype => 'tsquery', proargtypes => 'cstring',
8670  prosrc => 'tsqueryin' },
8671{ oid => '3641', descr => 'I/O',
8672  proname => 'tsqueryrecv', prorettype => 'tsquery', proargtypes => 'internal',
8673  prosrc => 'tsqueryrecv' },
8674{ oid => '3613', descr => 'I/O',
8675  proname => 'tsqueryout', prorettype => 'cstring', proargtypes => 'tsquery',
8676  prosrc => 'tsqueryout' },
8677{ oid => '3640', descr => 'I/O',
8678  proname => 'tsquerysend', prorettype => 'bytea', proargtypes => 'tsquery',
8679  prosrc => 'tsquerysend' },
8680{ oid => '3646', descr => 'I/O',
8681  proname => 'gtsvectorin', prorettype => 'gtsvector', proargtypes => 'cstring',
8682  prosrc => 'gtsvectorin' },
8683{ oid => '3647', descr => 'I/O',
8684  proname => 'gtsvectorout', prorettype => 'cstring',
8685  proargtypes => 'gtsvector', prosrc => 'gtsvectorout' },
8686
8687{ oid => '3616',
8688  proname => 'tsvector_lt', prorettype => 'bool',
8689  proargtypes => 'tsvector tsvector', prosrc => 'tsvector_lt' },
8690{ oid => '3617',
8691  proname => 'tsvector_le', prorettype => 'bool',
8692  proargtypes => 'tsvector tsvector', prosrc => 'tsvector_le' },
8693{ oid => '3618',
8694  proname => 'tsvector_eq', prorettype => 'bool',
8695  proargtypes => 'tsvector tsvector', prosrc => 'tsvector_eq' },
8696{ oid => '3619',
8697  proname => 'tsvector_ne', prorettype => 'bool',
8698  proargtypes => 'tsvector tsvector', prosrc => 'tsvector_ne' },
8699{ oid => '3620',
8700  proname => 'tsvector_ge', prorettype => 'bool',
8701  proargtypes => 'tsvector tsvector', prosrc => 'tsvector_ge' },
8702{ oid => '3621',
8703  proname => 'tsvector_gt', prorettype => 'bool',
8704  proargtypes => 'tsvector tsvector', prosrc => 'tsvector_gt' },
8705{ oid => '3622', descr => 'less-equal-greater',
8706  proname => 'tsvector_cmp', prorettype => 'int4',
8707  proargtypes => 'tsvector tsvector', prosrc => 'tsvector_cmp' },
8708
8709{ oid => '3711', descr => 'number of lexemes',
8710  proname => 'length', prorettype => 'int4', proargtypes => 'tsvector',
8711  prosrc => 'tsvector_length' },
8712{ oid => '3623', descr => 'strip position information',
8713  proname => 'strip', prorettype => 'tsvector', proargtypes => 'tsvector',
8714  prosrc => 'tsvector_strip' },
8715{ oid => '3624', descr => 'set given weight for whole tsvector',
8716  proname => 'setweight', prorettype => 'tsvector',
8717  proargtypes => 'tsvector char', prosrc => 'tsvector_setweight' },
8718{ oid => '3320', descr => 'set given weight for given lexemes',
8719  proname => 'setweight', prorettype => 'tsvector',
8720  proargtypes => 'tsvector char _text',
8721  prosrc => 'tsvector_setweight_by_filter' },
8722{ oid => '3625',
8723  proname => 'tsvector_concat', prorettype => 'tsvector',
8724  proargtypes => 'tsvector tsvector', prosrc => 'tsvector_concat' },
8725{ oid => '3321', descr => 'delete lexeme',
8726  proname => 'ts_delete', prorettype => 'tsvector',
8727  proargtypes => 'tsvector text', prosrc => 'tsvector_delete_str' },
8728{ oid => '3323', descr => 'delete given lexemes',
8729  proname => 'ts_delete', prorettype => 'tsvector',
8730  proargtypes => 'tsvector _text', prosrc => 'tsvector_delete_arr' },
8731{ oid => '3322', descr => 'expand tsvector to set of rows',
8732  proname => 'unnest', prorows => '10', proretset => 't',
8733  prorettype => 'record', proargtypes => 'tsvector',
8734  proallargtypes => '{tsvector,text,_int2,_text}', proargmodes => '{i,o,o,o}',
8735  proargnames => '{tsvector,lexeme,positions,weights}',
8736  prosrc => 'tsvector_unnest' },
8737{ oid => '3326', descr => 'convert tsvector to array of lexemes',
8738  proname => 'tsvector_to_array', prorettype => '_text',
8739  proargtypes => 'tsvector', prosrc => 'tsvector_to_array' },
8740{ oid => '3327', descr => 'build tsvector from array of lexemes',
8741  proname => 'array_to_tsvector', prorettype => 'tsvector',
8742  proargtypes => '_text', prosrc => 'array_to_tsvector' },
8743{ oid => '3319',
8744  descr => 'delete lexemes that do not have one of the given weights',
8745  proname => 'ts_filter', prorettype => 'tsvector',
8746  proargtypes => 'tsvector _char', prosrc => 'tsvector_filter' },
8747
8748{ oid => '3634',
8749  proname => 'ts_match_vq', prorettype => 'bool',
8750  proargtypes => 'tsvector tsquery', prosrc => 'ts_match_vq' },
8751{ oid => '3635',
8752  proname => 'ts_match_qv', prorettype => 'bool',
8753  proargtypes => 'tsquery tsvector', prosrc => 'ts_match_qv' },
8754{ oid => '3760',
8755  proname => 'ts_match_tt', procost => '100', provolatile => 's',
8756  prorettype => 'bool', proargtypes => 'text text', prosrc => 'ts_match_tt' },
8757{ oid => '3761',
8758  proname => 'ts_match_tq', procost => '100', provolatile => 's',
8759  prorettype => 'bool', proargtypes => 'text tsquery',
8760  prosrc => 'ts_match_tq' },
8761
8762{ oid => '3648', descr => 'GiST tsvector support',
8763  proname => 'gtsvector_compress', prorettype => 'internal',
8764  proargtypes => 'internal', prosrc => 'gtsvector_compress' },
8765{ oid => '3649', descr => 'GiST tsvector support',
8766  proname => 'gtsvector_decompress', prorettype => 'internal',
8767  proargtypes => 'internal', prosrc => 'gtsvector_decompress' },
8768{ oid => '3650', descr => 'GiST tsvector support',
8769  proname => 'gtsvector_picksplit', prorettype => 'internal',
8770  proargtypes => 'internal internal', prosrc => 'gtsvector_picksplit' },
8771{ oid => '3651', descr => 'GiST tsvector support',
8772  proname => 'gtsvector_union', prorettype => 'gtsvector',
8773  proargtypes => 'internal internal', prosrc => 'gtsvector_union' },
8774{ oid => '3652', descr => 'GiST tsvector support',
8775  proname => 'gtsvector_same', prorettype => 'internal',
8776  proargtypes => 'gtsvector gtsvector internal', prosrc => 'gtsvector_same' },
8777{ oid => '3653', descr => 'GiST tsvector support',
8778  proname => 'gtsvector_penalty', prorettype => 'internal',
8779  proargtypes => 'internal internal internal', prosrc => 'gtsvector_penalty' },
8780{ oid => '3654', descr => 'GiST tsvector support',
8781  proname => 'gtsvector_consistent', prorettype => 'bool',
8782  proargtypes => 'internal tsvector int2 oid internal',
8783  prosrc => 'gtsvector_consistent' },
8784{ oid => '3790', descr => 'GiST tsvector support (obsolete)',
8785  proname => 'gtsvector_consistent', prorettype => 'bool',
8786  proargtypes => 'internal gtsvector int4 oid internal',
8787  prosrc => 'gtsvector_consistent_oldsig' },
8788{ oid => '3434', descr => 'GiST tsvector support',
8789  proname => 'gtsvector_options', proisstrict => 'f', prorettype => 'void',
8790  proargtypes => 'internal', prosrc => 'gtsvector_options' },
8791
8792{ oid => '3656', descr => 'GIN tsvector support',
8793  proname => 'gin_extract_tsvector', prorettype => 'internal',
8794  proargtypes => 'tsvector internal internal',
8795  prosrc => 'gin_extract_tsvector' },
8796{ oid => '3657', descr => 'GIN tsvector support',
8797  proname => 'gin_extract_tsquery', prorettype => 'internal',
8798  proargtypes => 'tsvector internal int2 internal internal internal internal',
8799  prosrc => 'gin_extract_tsquery' },
8800{ oid => '3658', descr => 'GIN tsvector support',
8801  proname => 'gin_tsquery_consistent', prorettype => 'bool',
8802  proargtypes => 'internal int2 tsvector int4 internal internal internal internal',
8803  prosrc => 'gin_tsquery_consistent' },
8804{ oid => '3921', descr => 'GIN tsvector support',
8805  proname => 'gin_tsquery_triconsistent', prorettype => 'char',
8806  proargtypes => 'internal int2 tsvector int4 internal internal internal',
8807  prosrc => 'gin_tsquery_triconsistent' },
8808{ oid => '3724', descr => 'GIN tsvector support',
8809  proname => 'gin_cmp_tslexeme', prorettype => 'int4',
8810  proargtypes => 'text text', prosrc => 'gin_cmp_tslexeme' },
8811{ oid => '2700', descr => 'GIN tsvector support',
8812  proname => 'gin_cmp_prefix', prorettype => 'int4',
8813  proargtypes => 'text text int2 internal', prosrc => 'gin_cmp_prefix' },
8814{ oid => '3077', descr => 'GIN tsvector support (obsolete)',
8815  proname => 'gin_extract_tsvector', prorettype => 'internal',
8816  proargtypes => 'tsvector internal', prosrc => 'gin_extract_tsvector_2args' },
8817{ oid => '3087', descr => 'GIN tsvector support (obsolete)',
8818  proname => 'gin_extract_tsquery', prorettype => 'internal',
8819  proargtypes => 'tsquery internal int2 internal internal',
8820  prosrc => 'gin_extract_tsquery_5args' },
8821{ oid => '3088', descr => 'GIN tsvector support (obsolete)',
8822  proname => 'gin_tsquery_consistent', prorettype => 'bool',
8823  proargtypes => 'internal int2 tsquery int4 internal internal',
8824  prosrc => 'gin_tsquery_consistent_6args' },
8825{ oid => '3791', descr => 'GIN tsvector support (obsolete)',
8826  proname => 'gin_extract_tsquery', prorettype => 'internal',
8827  proargtypes => 'tsquery internal int2 internal internal internal internal',
8828  prosrc => 'gin_extract_tsquery_oldsig' },
8829{ oid => '3792', descr => 'GIN tsvector support (obsolete)',
8830  proname => 'gin_tsquery_consistent', prorettype => 'bool',
8831  proargtypes => 'internal int2 tsquery int4 internal internal internal internal',
8832  prosrc => 'gin_tsquery_consistent_oldsig' },
8833
8834{ oid => '3789', descr => 'clean up GIN pending list',
8835  proname => 'gin_clean_pending_list', provolatile => 'v', proparallel => 'u',
8836  prorettype => 'int8', proargtypes => 'regclass',
8837  prosrc => 'gin_clean_pending_list' },
8838
8839{ oid => '3662',
8840  proname => 'tsquery_lt', prorettype => 'bool',
8841  proargtypes => 'tsquery tsquery', prosrc => 'tsquery_lt' },
8842{ oid => '3663',
8843  proname => 'tsquery_le', prorettype => 'bool',
8844  proargtypes => 'tsquery tsquery', prosrc => 'tsquery_le' },
8845{ oid => '3664',
8846  proname => 'tsquery_eq', prorettype => 'bool',
8847  proargtypes => 'tsquery tsquery', prosrc => 'tsquery_eq' },
8848{ oid => '3665',
8849  proname => 'tsquery_ne', prorettype => 'bool',
8850  proargtypes => 'tsquery tsquery', prosrc => 'tsquery_ne' },
8851{ oid => '3666',
8852  proname => 'tsquery_ge', prorettype => 'bool',
8853  proargtypes => 'tsquery tsquery', prosrc => 'tsquery_ge' },
8854{ oid => '3667',
8855  proname => 'tsquery_gt', prorettype => 'bool',
8856  proargtypes => 'tsquery tsquery', prosrc => 'tsquery_gt' },
8857{ oid => '3668', descr => 'less-equal-greater',
8858  proname => 'tsquery_cmp', prorettype => 'int4',
8859  proargtypes => 'tsquery tsquery', prosrc => 'tsquery_cmp' },
8860
8861{ oid => '3669',
8862  proname => 'tsquery_and', prorettype => 'tsquery',
8863  proargtypes => 'tsquery tsquery', prosrc => 'tsquery_and' },
8864{ oid => '3670',
8865  proname => 'tsquery_or', prorettype => 'tsquery',
8866  proargtypes => 'tsquery tsquery', prosrc => 'tsquery_or' },
8867{ oid => '5003',
8868  proname => 'tsquery_phrase', prorettype => 'tsquery',
8869  proargtypes => 'tsquery tsquery', prosrc => 'tsquery_phrase' },
8870{ oid => '5004', descr => 'phrase-concatenate with distance',
8871  proname => 'tsquery_phrase', prorettype => 'tsquery',
8872  proargtypes => 'tsquery tsquery int4', prosrc => 'tsquery_phrase_distance' },
8873{ oid => '3671',
8874  proname => 'tsquery_not', prorettype => 'tsquery', proargtypes => 'tsquery',
8875  prosrc => 'tsquery_not' },
8876
8877{ oid => '3691',
8878  proname => 'tsq_mcontains', prorettype => 'bool',
8879  proargtypes => 'tsquery tsquery', prosrc => 'tsq_mcontains' },
8880{ oid => '3692',
8881  proname => 'tsq_mcontained', prorettype => 'bool',
8882  proargtypes => 'tsquery tsquery', prosrc => 'tsq_mcontained' },
8883
8884{ oid => '3672', descr => 'number of nodes',
8885  proname => 'numnode', prorettype => 'int4', proargtypes => 'tsquery',
8886  prosrc => 'tsquery_numnode' },
8887{ oid => '3673', descr => 'show real useful query for GiST index',
8888  proname => 'querytree', prorettype => 'text', proargtypes => 'tsquery',
8889  prosrc => 'tsquerytree' },
8890
8891{ oid => '3684', descr => 'rewrite tsquery',
8892  proname => 'ts_rewrite', prorettype => 'tsquery',
8893  proargtypes => 'tsquery tsquery tsquery', prosrc => 'tsquery_rewrite' },
8894{ oid => '3685', descr => 'rewrite tsquery',
8895  proname => 'ts_rewrite', procost => '100', provolatile => 'v',
8896  proparallel => 'u', prorettype => 'tsquery', proargtypes => 'tsquery text',
8897  prosrc => 'tsquery_rewrite_query' },
8898
8899{ oid => '3695', descr => 'GiST tsquery support',
8900  proname => 'gtsquery_compress', prorettype => 'internal',
8901  proargtypes => 'internal', prosrc => 'gtsquery_compress' },
8902{ oid => '3697', descr => 'GiST tsquery support',
8903  proname => 'gtsquery_picksplit', prorettype => 'internal',
8904  proargtypes => 'internal internal', prosrc => 'gtsquery_picksplit' },
8905{ oid => '3698', descr => 'GiST tsquery support',
8906  proname => 'gtsquery_union', prorettype => 'int8',
8907  proargtypes => 'internal internal', prosrc => 'gtsquery_union' },
8908{ oid => '3699', descr => 'GiST tsquery support',
8909  proname => 'gtsquery_same', prorettype => 'internal',
8910  proargtypes => 'int8 int8 internal', prosrc => 'gtsquery_same' },
8911{ oid => '3700', descr => 'GiST tsquery support',
8912  proname => 'gtsquery_penalty', prorettype => 'internal',
8913  proargtypes => 'internal internal internal', prosrc => 'gtsquery_penalty' },
8914{ oid => '3701', descr => 'GiST tsquery support',
8915  proname => 'gtsquery_consistent', prorettype => 'bool',
8916  proargtypes => 'internal tsquery int2 oid internal',
8917  prosrc => 'gtsquery_consistent' },
8918{ oid => '3793', descr => 'GiST tsquery support (obsolete)',
8919  proname => 'gtsquery_consistent', prorettype => 'bool',
8920  proargtypes => 'internal internal int4 oid internal',
8921  prosrc => 'gtsquery_consistent_oldsig' },
8922
8923{ oid => '3686', descr => 'restriction selectivity of tsvector @@ tsquery',
8924  proname => 'tsmatchsel', provolatile => 's', prorettype => 'float8',
8925  proargtypes => 'internal oid internal int4', prosrc => 'tsmatchsel' },
8926{ oid => '3687', descr => 'join selectivity of tsvector @@ tsquery',
8927  proname => 'tsmatchjoinsel', provolatile => 's', prorettype => 'float8',
8928  proargtypes => 'internal oid internal int2 internal',
8929  prosrc => 'tsmatchjoinsel' },
8930{ oid => '3688', descr => 'tsvector typanalyze',
8931  proname => 'ts_typanalyze', provolatile => 's', prorettype => 'bool',
8932  proargtypes => 'internal', prosrc => 'ts_typanalyze' },
8933
8934{ oid => '3689', descr => 'statistics of tsvector column',
8935  proname => 'ts_stat', procost => '10', prorows => '10000', proretset => 't',
8936  provolatile => 'v', proparallel => 'u', prorettype => 'record',
8937  proargtypes => 'text', proallargtypes => '{text,text,int4,int4}',
8938  proargmodes => '{i,o,o,o}', proargnames => '{query,word,ndoc,nentry}',
8939  prosrc => 'ts_stat1' },
8940{ oid => '3690', descr => 'statistics of tsvector column',
8941  proname => 'ts_stat', procost => '10', prorows => '10000', proretset => 't',
8942  provolatile => 'v', proparallel => 'u', prorettype => 'record',
8943  proargtypes => 'text text', proallargtypes => '{text,text,text,int4,int4}',
8944  proargmodes => '{i,i,o,o,o}',
8945  proargnames => '{query,weights,word,ndoc,nentry}', prosrc => 'ts_stat2' },
8946
8947{ oid => '3703', descr => 'relevance',
8948  proname => 'ts_rank', prorettype => 'float4',
8949  proargtypes => '_float4 tsvector tsquery int4', prosrc => 'ts_rank_wttf' },
8950{ oid => '3704', descr => 'relevance',
8951  proname => 'ts_rank', prorettype => 'float4',
8952  proargtypes => '_float4 tsvector tsquery', prosrc => 'ts_rank_wtt' },
8953{ oid => '3705', descr => 'relevance',
8954  proname => 'ts_rank', prorettype => 'float4',
8955  proargtypes => 'tsvector tsquery int4', prosrc => 'ts_rank_ttf' },
8956{ oid => '3706', descr => 'relevance',
8957  proname => 'ts_rank', prorettype => 'float4',
8958  proargtypes => 'tsvector tsquery', prosrc => 'ts_rank_tt' },
8959{ oid => '3707', descr => 'relevance',
8960  proname => 'ts_rank_cd', prorettype => 'float4',
8961  proargtypes => '_float4 tsvector tsquery int4', prosrc => 'ts_rankcd_wttf' },
8962{ oid => '3708', descr => 'relevance',
8963  proname => 'ts_rank_cd', prorettype => 'float4',
8964  proargtypes => '_float4 tsvector tsquery', prosrc => 'ts_rankcd_wtt' },
8965{ oid => '3709', descr => 'relevance',
8966  proname => 'ts_rank_cd', prorettype => 'float4',
8967  proargtypes => 'tsvector tsquery int4', prosrc => 'ts_rankcd_ttf' },
8968{ oid => '3710', descr => 'relevance',
8969  proname => 'ts_rank_cd', prorettype => 'float4',
8970  proargtypes => 'tsvector tsquery', prosrc => 'ts_rankcd_tt' },
8971
8972{ oid => '3713', descr => 'get parser\'s token types',
8973  proname => 'ts_token_type', prorows => '16', proretset => 't',
8974  prorettype => 'record', proargtypes => 'oid',
8975  proallargtypes => '{oid,int4,text,text}', proargmodes => '{i,o,o,o}',
8976  proargnames => '{parser_oid,tokid,alias,description}',
8977  prosrc => 'ts_token_type_byid' },
8978{ oid => '3714', descr => 'get parser\'s token types',
8979  proname => 'ts_token_type', prorows => '16', proretset => 't',
8980  provolatile => 's', prorettype => 'record', proargtypes => 'text',
8981  proallargtypes => '{text,int4,text,text}', proargmodes => '{i,o,o,o}',
8982  proargnames => '{parser_name,tokid,alias,description}',
8983  prosrc => 'ts_token_type_byname' },
8984{ oid => '3715', descr => 'parse text to tokens',
8985  proname => 'ts_parse', prorows => '1000', proretset => 't',
8986  prorettype => 'record', proargtypes => 'oid text',
8987  proallargtypes => '{oid,text,int4,text}', proargmodes => '{i,i,o,o}',
8988  proargnames => '{parser_oid,txt,tokid,token}', prosrc => 'ts_parse_byid' },
8989{ oid => '3716', descr => 'parse text to tokens',
8990  proname => 'ts_parse', prorows => '1000', proretset => 't',
8991  provolatile => 's', prorettype => 'record', proargtypes => 'text text',
8992  proallargtypes => '{text,text,int4,text}', proargmodes => '{i,i,o,o}',
8993  proargnames => '{parser_name,txt,tokid,token}', prosrc => 'ts_parse_byname' },
8994
8995{ oid => '3717', descr => '(internal)',
8996  proname => 'prsd_start', prorettype => 'internal',
8997  proargtypes => 'internal int4', prosrc => 'prsd_start' },
8998{ oid => '3718', descr => '(internal)',
8999  proname => 'prsd_nexttoken', prorettype => 'internal',
9000  proargtypes => 'internal internal internal', prosrc => 'prsd_nexttoken' },
9001{ oid => '3719', descr => '(internal)',
9002  proname => 'prsd_end', prorettype => 'void', proargtypes => 'internal',
9003  prosrc => 'prsd_end' },
9004{ oid => '3720', descr => '(internal)',
9005  proname => 'prsd_headline', prorettype => 'internal',
9006  proargtypes => 'internal internal tsquery', prosrc => 'prsd_headline' },
9007{ oid => '3721', descr => '(internal)',
9008  proname => 'prsd_lextype', prorettype => 'internal',
9009  proargtypes => 'internal', prosrc => 'prsd_lextype' },
9010
9011{ oid => '3723', descr => 'normalize one word by dictionary',
9012  proname => 'ts_lexize', prorettype => '_text',
9013  proargtypes => 'regdictionary text', prosrc => 'ts_lexize' },
9014
9015{ oid => '3725', descr => '(internal)',
9016  proname => 'dsimple_init', prorettype => 'internal',
9017  proargtypes => 'internal', prosrc => 'dsimple_init' },
9018{ oid => '3726', descr => '(internal)',
9019  proname => 'dsimple_lexize', prorettype => 'internal',
9020  proargtypes => 'internal internal internal internal',
9021  prosrc => 'dsimple_lexize' },
9022
9023{ oid => '3728', descr => '(internal)',
9024  proname => 'dsynonym_init', prorettype => 'internal',
9025  proargtypes => 'internal', prosrc => 'dsynonym_init' },
9026{ oid => '3729', descr => '(internal)',
9027  proname => 'dsynonym_lexize', prorettype => 'internal',
9028  proargtypes => 'internal internal internal internal',
9029  prosrc => 'dsynonym_lexize' },
9030
9031{ oid => '3731', descr => '(internal)',
9032  proname => 'dispell_init', prorettype => 'internal',
9033  proargtypes => 'internal', prosrc => 'dispell_init' },
9034{ oid => '3732', descr => '(internal)',
9035  proname => 'dispell_lexize', prorettype => 'internal',
9036  proargtypes => 'internal internal internal internal',
9037  prosrc => 'dispell_lexize' },
9038
9039{ oid => '3740', descr => '(internal)',
9040  proname => 'thesaurus_init', prorettype => 'internal',
9041  proargtypes => 'internal', prosrc => 'thesaurus_init' },
9042{ oid => '3741', descr => '(internal)',
9043  proname => 'thesaurus_lexize', prorettype => 'internal',
9044  proargtypes => 'internal internal internal internal',
9045  prosrc => 'thesaurus_lexize' },
9046
9047{ oid => '3743', descr => 'generate headline',
9048  proname => 'ts_headline', procost => '100', prorettype => 'text',
9049  proargtypes => 'regconfig text tsquery text',
9050  prosrc => 'ts_headline_byid_opt' },
9051{ oid => '3744', descr => 'generate headline',
9052  proname => 'ts_headline', procost => '100', prorettype => 'text',
9053  proargtypes => 'regconfig text tsquery', prosrc => 'ts_headline_byid' },
9054{ oid => '3754', descr => 'generate headline',
9055  proname => 'ts_headline', procost => '100', provolatile => 's',
9056  prorettype => 'text', proargtypes => 'text tsquery text',
9057  prosrc => 'ts_headline_opt' },
9058{ oid => '3755', descr => 'generate headline',
9059  proname => 'ts_headline', procost => '100', provolatile => 's',
9060  prorettype => 'text', proargtypes => 'text tsquery',
9061  prosrc => 'ts_headline' },
9062
9063{ oid => '4201', descr => 'generate headline from jsonb',
9064  proname => 'ts_headline', procost => '100', prorettype => 'jsonb',
9065  proargtypes => 'regconfig jsonb tsquery text',
9066  prosrc => 'ts_headline_jsonb_byid_opt' },
9067{ oid => '4202', descr => 'generate headline from jsonb',
9068  proname => 'ts_headline', procost => '100', prorettype => 'jsonb',
9069  proargtypes => 'regconfig jsonb tsquery',
9070  prosrc => 'ts_headline_jsonb_byid' },
9071{ oid => '4203', descr => 'generate headline from jsonb',
9072  proname => 'ts_headline', procost => '100', provolatile => 's',
9073  prorettype => 'jsonb', proargtypes => 'jsonb tsquery text',
9074  prosrc => 'ts_headline_jsonb_opt' },
9075{ oid => '4204', descr => 'generate headline from jsonb',
9076  proname => 'ts_headline', procost => '100', provolatile => 's',
9077  prorettype => 'jsonb', proargtypes => 'jsonb tsquery',
9078  prosrc => 'ts_headline_jsonb' },
9079
9080{ oid => '4205', descr => 'generate headline from json',
9081  proname => 'ts_headline', procost => '100', prorettype => 'json',
9082  proargtypes => 'regconfig json tsquery text',
9083  prosrc => 'ts_headline_json_byid_opt' },
9084{ oid => '4206', descr => 'generate headline from json',
9085  proname => 'ts_headline', procost => '100', prorettype => 'json',
9086  proargtypes => 'regconfig json tsquery', prosrc => 'ts_headline_json_byid' },
9087{ oid => '4207', descr => 'generate headline from json',
9088  proname => 'ts_headline', procost => '100', provolatile => 's',
9089  prorettype => 'json', proargtypes => 'json tsquery text',
9090  prosrc => 'ts_headline_json_opt' },
9091{ oid => '4208', descr => 'generate headline from json',
9092  proname => 'ts_headline', procost => '100', provolatile => 's',
9093  prorettype => 'json', proargtypes => 'json tsquery',
9094  prosrc => 'ts_headline_json' },
9095
9096{ oid => '3745', descr => 'transform to tsvector',
9097  proname => 'to_tsvector', procost => '100', prorettype => 'tsvector',
9098  proargtypes => 'regconfig text', prosrc => 'to_tsvector_byid' },
9099{ oid => '3746', descr => 'make tsquery',
9100  proname => 'to_tsquery', procost => '100', prorettype => 'tsquery',
9101  proargtypes => 'regconfig text', prosrc => 'to_tsquery_byid' },
9102{ oid => '3747', descr => 'transform to tsquery',
9103  proname => 'plainto_tsquery', procost => '100', prorettype => 'tsquery',
9104  proargtypes => 'regconfig text', prosrc => 'plainto_tsquery_byid' },
9105{ oid => '5006', descr => 'transform to tsquery',
9106  proname => 'phraseto_tsquery', procost => '100', prorettype => 'tsquery',
9107  proargtypes => 'regconfig text', prosrc => 'phraseto_tsquery_byid' },
9108{ oid => '5007', descr => 'transform to tsquery',
9109  proname => 'websearch_to_tsquery', procost => '100', prorettype => 'tsquery',
9110  proargtypes => 'regconfig text', prosrc => 'websearch_to_tsquery_byid' },
9111{ oid => '3749', descr => 'transform to tsvector',
9112  proname => 'to_tsvector', procost => '100', provolatile => 's',
9113  prorettype => 'tsvector', proargtypes => 'text', prosrc => 'to_tsvector' },
9114{ oid => '3750', descr => 'make tsquery',
9115  proname => 'to_tsquery', procost => '100', provolatile => 's',
9116  prorettype => 'tsquery', proargtypes => 'text', prosrc => 'to_tsquery' },
9117{ oid => '3751', descr => 'transform to tsquery',
9118  proname => 'plainto_tsquery', procost => '100', provolatile => 's',
9119  prorettype => 'tsquery', proargtypes => 'text', prosrc => 'plainto_tsquery' },
9120{ oid => '5001', descr => 'transform to tsquery',
9121  proname => 'phraseto_tsquery', procost => '100', provolatile => 's',
9122  prorettype => 'tsquery', proargtypes => 'text',
9123  prosrc => 'phraseto_tsquery' },
9124{ oid => '5009', descr => 'transform to tsquery',
9125  proname => 'websearch_to_tsquery', procost => '100', provolatile => 's',
9126  prorettype => 'tsquery', proargtypes => 'text',
9127  prosrc => 'websearch_to_tsquery' },
9128{ oid => '4209', descr => 'transform string values from jsonb to tsvector',
9129  proname => 'to_tsvector', procost => '100', provolatile => 's',
9130  prorettype => 'tsvector', proargtypes => 'jsonb',
9131  prosrc => 'jsonb_string_to_tsvector' },
9132{ oid => '4213', descr => 'transform specified values from jsonb to tsvector',
9133  proname => 'jsonb_to_tsvector', procost => '100', provolatile => 's',
9134  prorettype => 'tsvector', proargtypes => 'jsonb jsonb',
9135  prosrc => 'jsonb_to_tsvector' },
9136{ oid => '4210', descr => 'transform string values from json to tsvector',
9137  proname => 'to_tsvector', procost => '100', provolatile => 's',
9138  prorettype => 'tsvector', proargtypes => 'json',
9139  prosrc => 'json_string_to_tsvector' },
9140{ oid => '4215', descr => 'transform specified values from json to tsvector',
9141  proname => 'json_to_tsvector', procost => '100', provolatile => 's',
9142  prorettype => 'tsvector', proargtypes => 'json jsonb',
9143  prosrc => 'json_to_tsvector' },
9144{ oid => '4211', descr => 'transform string values from jsonb to tsvector',
9145  proname => 'to_tsvector', procost => '100', prorettype => 'tsvector',
9146  proargtypes => 'regconfig jsonb', prosrc => 'jsonb_string_to_tsvector_byid' },
9147{ oid => '4214', descr => 'transform specified values from jsonb to tsvector',
9148  proname => 'jsonb_to_tsvector', procost => '100', prorettype => 'tsvector',
9149  proargtypes => 'regconfig jsonb jsonb', prosrc => 'jsonb_to_tsvector_byid' },
9150{ oid => '4212', descr => 'transform string values from json to tsvector',
9151  proname => 'to_tsvector', procost => '100', prorettype => 'tsvector',
9152  proargtypes => 'regconfig json', prosrc => 'json_string_to_tsvector_byid' },
9153{ oid => '4216', descr => 'transform specified values from json to tsvector',
9154  proname => 'json_to_tsvector', procost => '100', prorettype => 'tsvector',
9155  proargtypes => 'regconfig json jsonb', prosrc => 'json_to_tsvector_byid' },
9156
9157{ oid => '3752', descr => 'trigger for automatic update of tsvector column',
9158  proname => 'tsvector_update_trigger', proisstrict => 'f', provolatile => 'v',
9159  prorettype => 'trigger', proargtypes => '',
9160  prosrc => 'tsvector_update_trigger_byid' },
9161{ oid => '3753', descr => 'trigger for automatic update of tsvector column',
9162  proname => 'tsvector_update_trigger_column', proisstrict => 'f',
9163  provolatile => 'v', prorettype => 'trigger', proargtypes => '',
9164  prosrc => 'tsvector_update_trigger_bycolumn' },
9165
9166{ oid => '3759', descr => 'get current tsearch configuration',
9167  proname => 'get_current_ts_config', provolatile => 's',
9168  prorettype => 'regconfig', proargtypes => '',
9169  prosrc => 'get_current_ts_config' },
9170
9171{ oid => '3736', descr => 'I/O',
9172  proname => 'regconfigin', provolatile => 's', prorettype => 'regconfig',
9173  proargtypes => 'cstring', prosrc => 'regconfigin' },
9174{ oid => '3737', descr => 'I/O',
9175  proname => 'regconfigout', provolatile => 's', prorettype => 'cstring',
9176  proargtypes => 'regconfig', prosrc => 'regconfigout' },
9177{ oid => '3738', descr => 'I/O',
9178  proname => 'regconfigrecv', prorettype => 'regconfig',
9179  proargtypes => 'internal', prosrc => 'regconfigrecv' },
9180{ oid => '3739', descr => 'I/O',
9181  proname => 'regconfigsend', prorettype => 'bytea', proargtypes => 'regconfig',
9182  prosrc => 'regconfigsend' },
9183
9184{ oid => '3771', descr => 'I/O',
9185  proname => 'regdictionaryin', provolatile => 's',
9186  prorettype => 'regdictionary', proargtypes => 'cstring',
9187  prosrc => 'regdictionaryin' },
9188{ oid => '3772', descr => 'I/O',
9189  proname => 'regdictionaryout', provolatile => 's', prorettype => 'cstring',
9190  proargtypes => 'regdictionary', prosrc => 'regdictionaryout' },
9191{ oid => '3773', descr => 'I/O',
9192  proname => 'regdictionaryrecv', prorettype => 'regdictionary',
9193  proargtypes => 'internal', prosrc => 'regdictionaryrecv' },
9194{ oid => '3774', descr => 'I/O',
9195  proname => 'regdictionarysend', prorettype => 'bytea',
9196  proargtypes => 'regdictionary', prosrc => 'regdictionarysend' },
9197
9198# jsonb
9199{ oid => '3806', descr => 'I/O',
9200  proname => 'jsonb_in', prorettype => 'jsonb', proargtypes => 'cstring',
9201  prosrc => 'jsonb_in' },
9202{ oid => '3805', descr => 'I/O',
9203  proname => 'jsonb_recv', prorettype => 'jsonb', proargtypes => 'internal',
9204  prosrc => 'jsonb_recv' },
9205{ oid => '3804', descr => 'I/O',
9206  proname => 'jsonb_out', prorettype => 'cstring', proargtypes => 'jsonb',
9207  prosrc => 'jsonb_out' },
9208{ oid => '3803', descr => 'I/O',
9209  proname => 'jsonb_send', prorettype => 'bytea', proargtypes => 'jsonb',
9210  prosrc => 'jsonb_send' },
9211
9212{ oid => '3263', descr => 'map text array of key value pairs to jsonb object',
9213  proname => 'jsonb_object', prorettype => 'jsonb', proargtypes => '_text',
9214  prosrc => 'jsonb_object' },
9215{ oid => '3264', descr => 'map text array of key value pairs to jsonb object',
9216  proname => 'jsonb_object', prorettype => 'jsonb',
9217  proargtypes => '_text _text', prosrc => 'jsonb_object_two_arg' },
9218{ oid => '3787', descr => 'map input to jsonb',
9219  proname => 'to_jsonb', provolatile => 's', prorettype => 'jsonb',
9220  proargtypes => 'anyelement', prosrc => 'to_jsonb' },
9221{ oid => '3265', descr => 'jsonb aggregate transition function',
9222  proname => 'jsonb_agg_transfn', proisstrict => 'f', provolatile => 's',
9223  prorettype => 'internal', proargtypes => 'internal anyelement',
9224  prosrc => 'jsonb_agg_transfn' },
9225{ oid => '3266', descr => 'jsonb aggregate final function',
9226  proname => 'jsonb_agg_finalfn', proisstrict => 'f', provolatile => 's',
9227  prorettype => 'jsonb', proargtypes => 'internal',
9228  prosrc => 'jsonb_agg_finalfn' },
9229{ oid => '3267', descr => 'aggregate input into jsonb',
9230  proname => 'jsonb_agg', prokind => 'a', proisstrict => 'f',
9231  provolatile => 's', prorettype => 'jsonb', proargtypes => 'anyelement',
9232  prosrc => 'aggregate_dummy' },
9233{ oid => '3268', descr => 'jsonb object aggregate transition function',
9234  proname => 'jsonb_object_agg_transfn', proisstrict => 'f', provolatile => 's',
9235  prorettype => 'internal', proargtypes => 'internal any any',
9236  prosrc => 'jsonb_object_agg_transfn' },
9237{ oid => '3269', descr => 'jsonb object aggregate final function',
9238  proname => 'jsonb_object_agg_finalfn', proisstrict => 'f', provolatile => 's',
9239  prorettype => 'jsonb', proargtypes => 'internal',
9240  prosrc => 'jsonb_object_agg_finalfn' },
9241{ oid => '3270', descr => 'aggregate inputs into jsonb object',
9242  proname => 'jsonb_object_agg', prokind => 'a', proisstrict => 'f',
9243  prorettype => 'jsonb', proargtypes => 'any any',
9244  prosrc => 'aggregate_dummy' },
9245{ oid => '3271', descr => 'build a jsonb array from any inputs',
9246  proname => 'jsonb_build_array', provariadic => 'any', proisstrict => 'f',
9247  provolatile => 's', prorettype => 'jsonb', proargtypes => 'any',
9248  proallargtypes => '{any}', proargmodes => '{v}',
9249  prosrc => 'jsonb_build_array' },
9250{ oid => '3272', descr => 'build an empty jsonb array',
9251  proname => 'jsonb_build_array', proisstrict => 'f', provolatile => 's',
9252  prorettype => 'jsonb', proargtypes => '',
9253  prosrc => 'jsonb_build_array_noargs' },
9254{ oid => '3273',
9255  descr => 'build a jsonb object from pairwise key/value inputs',
9256  proname => 'jsonb_build_object', provariadic => 'any', proisstrict => 'f',
9257  provolatile => 's', prorettype => 'jsonb', proargtypes => 'any',
9258  proallargtypes => '{any}', proargmodes => '{v}',
9259  prosrc => 'jsonb_build_object' },
9260{ oid => '3274', descr => 'build an empty jsonb object',
9261  proname => 'jsonb_build_object', proisstrict => 'f', provolatile => 's',
9262  prorettype => 'jsonb', proargtypes => '',
9263  prosrc => 'jsonb_build_object_noargs' },
9264{ oid => '3262', descr => 'remove object fields with null values from jsonb',
9265  proname => 'jsonb_strip_nulls', prorettype => 'jsonb', proargtypes => 'jsonb',
9266  prosrc => 'jsonb_strip_nulls' },
9267
9268{ oid => '3478',
9269  proname => 'jsonb_object_field', prorettype => 'jsonb',
9270  proargtypes => 'jsonb text', proargnames => '{from_json, field_name}',
9271  prosrc => 'jsonb_object_field' },
9272{ oid => '3214',
9273  proname => 'jsonb_object_field_text', prorettype => 'text',
9274  proargtypes => 'jsonb text', proargnames => '{from_json, field_name}',
9275  prosrc => 'jsonb_object_field_text' },
9276{ oid => '3215',
9277  proname => 'jsonb_array_element', prorettype => 'jsonb',
9278  proargtypes => 'jsonb int4', proargnames => '{from_json, element_index}',
9279  prosrc => 'jsonb_array_element' },
9280{ oid => '3216',
9281  proname => 'jsonb_array_element_text', prorettype => 'text',
9282  proargtypes => 'jsonb int4', proargnames => '{from_json, element_index}',
9283  prosrc => 'jsonb_array_element_text' },
9284{ oid => '3217', descr => 'get value from jsonb with path elements',
9285  proname => 'jsonb_extract_path', provariadic => 'text', prorettype => 'jsonb',
9286  proargtypes => 'jsonb _text', proallargtypes => '{jsonb,_text}',
9287  proargmodes => '{i,v}', proargnames => '{from_json,path_elems}',
9288  prosrc => 'jsonb_extract_path' },
9289{ oid => '3940', descr => 'get value from jsonb as text with path elements',
9290  proname => 'jsonb_extract_path_text', provariadic => 'text',
9291  prorettype => 'text', proargtypes => 'jsonb _text',
9292  proallargtypes => '{jsonb,_text}', proargmodes => '{i,v}',
9293  proargnames => '{from_json,path_elems}',
9294  prosrc => 'jsonb_extract_path_text' },
9295{ oid => '3219', descr => 'elements of a jsonb array',
9296  proname => 'jsonb_array_elements', prorows => '100', proretset => 't',
9297  prorettype => 'jsonb', proargtypes => 'jsonb',
9298  proallargtypes => '{jsonb,jsonb}', proargmodes => '{i,o}',
9299  proargnames => '{from_json,value}', prosrc => 'jsonb_array_elements' },
9300{ oid => '3465', descr => 'elements of jsonb array',
9301  proname => 'jsonb_array_elements_text', prorows => '100', proretset => 't',
9302  prorettype => 'text', proargtypes => 'jsonb',
9303  proallargtypes => '{jsonb,text}', proargmodes => '{i,o}',
9304  proargnames => '{from_json,value}', prosrc => 'jsonb_array_elements_text' },
9305{ oid => '3207', descr => 'length of jsonb array',
9306  proname => 'jsonb_array_length', prorettype => 'int4', proargtypes => 'jsonb',
9307  prosrc => 'jsonb_array_length' },
9308{ oid => '3931', descr => 'get jsonb object keys',
9309  proname => 'jsonb_object_keys', prorows => '100', proretset => 't',
9310  prorettype => 'text', proargtypes => 'jsonb', prosrc => 'jsonb_object_keys' },
9311{ oid => '3208', descr => 'key value pairs of a jsonb object',
9312  proname => 'jsonb_each', prorows => '100', proretset => 't',
9313  prorettype => 'record', proargtypes => 'jsonb',
9314  proallargtypes => '{jsonb,text,jsonb}', proargmodes => '{i,o,o}',
9315  proargnames => '{from_json,key,value}', prosrc => 'jsonb_each' },
9316{ oid => '3932', descr => 'key value pairs of a jsonb object',
9317  proname => 'jsonb_each_text', prorows => '100', proretset => 't',
9318  prorettype => 'record', proargtypes => 'jsonb',
9319  proallargtypes => '{jsonb,text,text}', proargmodes => '{i,o,o}',
9320  proargnames => '{from_json,key,value}', prosrc => 'jsonb_each_text' },
9321{ oid => '3209', descr => 'get record fields from a jsonb object',
9322  proname => 'jsonb_populate_record', proisstrict => 'f', provolatile => 's',
9323  prorettype => 'anyelement', proargtypes => 'anyelement jsonb',
9324  prosrc => 'jsonb_populate_record' },
9325{ oid => '3475',
9326  descr => 'get set of records with fields from a jsonb array of objects',
9327  proname => 'jsonb_populate_recordset', prorows => '100', proisstrict => 'f',
9328  proretset => 't', provolatile => 's', prorettype => 'anyelement',
9329  proargtypes => 'anyelement jsonb', prosrc => 'jsonb_populate_recordset' },
9330{ oid => '3490', descr => 'get record fields from a jsonb object',
9331  proname => 'jsonb_to_record', provolatile => 's', prorettype => 'record',
9332  proargtypes => 'jsonb', prosrc => 'jsonb_to_record' },
9333{ oid => '3491',
9334  descr => 'get set of records with fields from a jsonb array of objects',
9335  proname => 'jsonb_to_recordset', prorows => '100', proisstrict => 'f',
9336  proretset => 't', provolatile => 's', prorettype => 'record',
9337  proargtypes => 'jsonb', prosrc => 'jsonb_to_recordset' },
9338{ oid => '3210', descr => 'get the type of a jsonb value',
9339  proname => 'jsonb_typeof', prorettype => 'text', proargtypes => 'jsonb',
9340  prosrc => 'jsonb_typeof' },
9341{ oid => '4038',
9342  proname => 'jsonb_ne', prorettype => 'bool', proargtypes => 'jsonb jsonb',
9343  prosrc => 'jsonb_ne' },
9344{ oid => '4039',
9345  proname => 'jsonb_lt', prorettype => 'bool', proargtypes => 'jsonb jsonb',
9346  prosrc => 'jsonb_lt' },
9347{ oid => '4040',
9348  proname => 'jsonb_gt', prorettype => 'bool', proargtypes => 'jsonb jsonb',
9349  prosrc => 'jsonb_gt' },
9350{ oid => '4041',
9351  proname => 'jsonb_le', prorettype => 'bool', proargtypes => 'jsonb jsonb',
9352  prosrc => 'jsonb_le' },
9353{ oid => '4042',
9354  proname => 'jsonb_ge', prorettype => 'bool', proargtypes => 'jsonb jsonb',
9355  prosrc => 'jsonb_ge' },
9356{ oid => '4043',
9357  proname => 'jsonb_eq', prorettype => 'bool', proargtypes => 'jsonb jsonb',
9358  prosrc => 'jsonb_eq' },
9359{ oid => '4044', descr => 'less-equal-greater',
9360  proname => 'jsonb_cmp', prorettype => 'int4', proargtypes => 'jsonb jsonb',
9361  prosrc => 'jsonb_cmp' },
9362{ oid => '4045', descr => 'hash',
9363  proname => 'jsonb_hash', prorettype => 'int4', proargtypes => 'jsonb',
9364  prosrc => 'jsonb_hash' },
9365{ oid => '3416', descr => 'hash',
9366  proname => 'jsonb_hash_extended', prorettype => 'int8',
9367  proargtypes => 'jsonb int8', prosrc => 'jsonb_hash_extended' },
9368{ oid => '4046',
9369  proname => 'jsonb_contains', prorettype => 'bool',
9370  proargtypes => 'jsonb jsonb', prosrc => 'jsonb_contains' },
9371{ oid => '4047',
9372  proname => 'jsonb_exists', prorettype => 'bool', proargtypes => 'jsonb text',
9373  prosrc => 'jsonb_exists' },
9374{ oid => '4048',
9375  proname => 'jsonb_exists_any', prorettype => 'bool',
9376  proargtypes => 'jsonb _text', prosrc => 'jsonb_exists_any' },
9377{ oid => '4049',
9378  proname => 'jsonb_exists_all', prorettype => 'bool',
9379  proargtypes => 'jsonb _text', prosrc => 'jsonb_exists_all' },
9380{ oid => '4050',
9381  proname => 'jsonb_contained', prorettype => 'bool',
9382  proargtypes => 'jsonb jsonb', prosrc => 'jsonb_contained' },
9383{ oid => '3480', descr => 'GIN support',
9384  proname => 'gin_compare_jsonb', prorettype => 'int4',
9385  proargtypes => 'text text', prosrc => 'gin_compare_jsonb' },
9386{ oid => '3482', descr => 'GIN support',
9387  proname => 'gin_extract_jsonb', prorettype => 'internal',
9388  proargtypes => 'jsonb internal internal', prosrc => 'gin_extract_jsonb' },
9389{ oid => '3483', descr => 'GIN support',
9390  proname => 'gin_extract_jsonb_query', prorettype => 'internal',
9391  proargtypes => 'jsonb internal int2 internal internal internal internal',
9392  prosrc => 'gin_extract_jsonb_query' },
9393{ oid => '3484', descr => 'GIN support',
9394  proname => 'gin_consistent_jsonb', prorettype => 'bool',
9395  proargtypes => 'internal int2 jsonb int4 internal internal internal internal',
9396  prosrc => 'gin_consistent_jsonb' },
9397{ oid => '3488', descr => 'GIN support',
9398  proname => 'gin_triconsistent_jsonb', prorettype => 'char',
9399  proargtypes => 'internal int2 jsonb int4 internal internal internal',
9400  prosrc => 'gin_triconsistent_jsonb' },
9401{ oid => '3485', descr => 'GIN support',
9402  proname => 'gin_extract_jsonb_path', prorettype => 'internal',
9403  proargtypes => 'jsonb internal internal',
9404  prosrc => 'gin_extract_jsonb_path' },
9405{ oid => '3486', descr => 'GIN support',
9406  proname => 'gin_extract_jsonb_query_path', prorettype => 'internal',
9407  proargtypes => 'jsonb internal int2 internal internal internal internal',
9408  prosrc => 'gin_extract_jsonb_query_path' },
9409{ oid => '3487', descr => 'GIN support',
9410  proname => 'gin_consistent_jsonb_path', prorettype => 'bool',
9411  proargtypes => 'internal int2 jsonb int4 internal internal internal internal',
9412  prosrc => 'gin_consistent_jsonb_path' },
9413{ oid => '3489', descr => 'GIN support',
9414  proname => 'gin_triconsistent_jsonb_path', prorettype => 'char',
9415  proargtypes => 'internal int2 jsonb int4 internal internal internal',
9416  prosrc => 'gin_triconsistent_jsonb_path' },
9417{ oid => '3301',
9418  proname => 'jsonb_concat', prorettype => 'jsonb',
9419  proargtypes => 'jsonb jsonb', prosrc => 'jsonb_concat' },
9420{ oid => '3302',
9421  proname => 'jsonb_delete', prorettype => 'jsonb', proargtypes => 'jsonb text',
9422  prosrc => 'jsonb_delete' },
9423{ oid => '3303',
9424  proname => 'jsonb_delete', prorettype => 'jsonb', proargtypes => 'jsonb int4',
9425  prosrc => 'jsonb_delete_idx' },
9426{ oid => '3343',
9427  proname => 'jsonb_delete', provariadic => 'text', prorettype => 'jsonb',
9428  proargtypes => 'jsonb _text', proallargtypes => '{jsonb,_text}',
9429  proargmodes => '{i,v}', proargnames => '{from_json,path_elems}',
9430  prosrc => 'jsonb_delete_array' },
9431{ oid => '3304',
9432  proname => 'jsonb_delete_path', prorettype => 'jsonb',
9433  proargtypes => 'jsonb _text', prosrc => 'jsonb_delete_path' },
9434{ oid => '5054', descr => 'Set part of a jsonb, handle NULL value',
9435  proname => 'jsonb_set_lax', proisstrict => 'f', prorettype => 'jsonb',
9436  proargtypes => 'jsonb _text jsonb bool text', prosrc => 'jsonb_set_lax' },
9437{ oid => '3305', descr => 'Set part of a jsonb',
9438  proname => 'jsonb_set', prorettype => 'jsonb',
9439  proargtypes => 'jsonb _text jsonb bool', prosrc => 'jsonb_set' },
9440{ oid => '3306', descr => 'Indented text from jsonb',
9441  proname => 'jsonb_pretty', prorettype => 'text', proargtypes => 'jsonb',
9442  prosrc => 'jsonb_pretty' },
9443{ oid => '3579', descr => 'Insert value into a jsonb',
9444  proname => 'jsonb_insert', prorettype => 'jsonb',
9445  proargtypes => 'jsonb _text jsonb bool', prosrc => 'jsonb_insert' },
9446
9447# jsonpath
9448{ oid => '4001', descr => 'I/O',
9449  proname => 'jsonpath_in', prorettype => 'jsonpath', proargtypes => 'cstring',
9450  prosrc => 'jsonpath_in' },
9451{ oid => '4002', descr => 'I/O',
9452  proname => 'jsonpath_recv', prorettype => 'jsonpath',
9453  proargtypes => 'internal', prosrc => 'jsonpath_recv' },
9454{ oid => '4003', descr => 'I/O',
9455  proname => 'jsonpath_out', prorettype => 'cstring', proargtypes => 'jsonpath',
9456  prosrc => 'jsonpath_out' },
9457{ oid => '4004', descr => 'I/O',
9458  proname => 'jsonpath_send', prorettype => 'bytea', proargtypes => 'jsonpath',
9459  prosrc => 'jsonpath_send' },
9460
9461{ oid => '4005', descr => 'jsonpath exists test',
9462  proname => 'jsonb_path_exists', prorettype => 'bool',
9463  proargtypes => 'jsonb jsonpath jsonb bool', prosrc => 'jsonb_path_exists' },
9464{ oid => '4006', descr => 'jsonpath query',
9465  proname => 'jsonb_path_query', prorows => '1000', proretset => 't',
9466  prorettype => 'jsonb', proargtypes => 'jsonb jsonpath jsonb bool',
9467  prosrc => 'jsonb_path_query' },
9468{ oid => '4007', descr => 'jsonpath query wrapped into array',
9469  proname => 'jsonb_path_query_array', prorettype => 'jsonb',
9470  proargtypes => 'jsonb jsonpath jsonb bool',
9471  prosrc => 'jsonb_path_query_array' },
9472{ oid => '4008', descr => 'jsonpath query first item',
9473  proname => 'jsonb_path_query_first', prorettype => 'jsonb',
9474  proargtypes => 'jsonb jsonpath jsonb bool',
9475  prosrc => 'jsonb_path_query_first' },
9476{ oid => '4009', descr => 'jsonpath match',
9477  proname => 'jsonb_path_match', prorettype => 'bool',
9478  proargtypes => 'jsonb jsonpath jsonb bool', prosrc => 'jsonb_path_match' },
9479
9480{ oid => '1177', descr => 'jsonpath exists test with timezone',
9481  proname => 'jsonb_path_exists_tz', provolatile => 's', prorettype => 'bool',
9482  proargtypes => 'jsonb jsonpath jsonb bool',
9483  prosrc => 'jsonb_path_exists_tz' },
9484{ oid => '1179', descr => 'jsonpath query with timezone',
9485  proname => 'jsonb_path_query_tz', prorows => '1000', proretset => 't',
9486  provolatile => 's', prorettype => 'jsonb',
9487  proargtypes => 'jsonb jsonpath jsonb bool', prosrc => 'jsonb_path_query_tz' },
9488{ oid => '1180', descr => 'jsonpath query wrapped into array with timezone',
9489  proname => 'jsonb_path_query_array_tz', provolatile => 's',
9490  prorettype => 'jsonb', proargtypes => 'jsonb jsonpath jsonb bool',
9491  prosrc => 'jsonb_path_query_array_tz' },
9492{ oid => '2023', descr => 'jsonpath query first item with timezone',
9493  proname => 'jsonb_path_query_first_tz', provolatile => 's',
9494  prorettype => 'jsonb', proargtypes => 'jsonb jsonpath jsonb bool',
9495  prosrc => 'jsonb_path_query_first_tz' },
9496{ oid => '2030', descr => 'jsonpath match with timezone',
9497  proname => 'jsonb_path_match_tz', provolatile => 's', prorettype => 'bool',
9498  proargtypes => 'jsonb jsonpath jsonb bool', prosrc => 'jsonb_path_match_tz' },
9499
9500{ oid => '4010', descr => 'implementation of @? operator',
9501  proname => 'jsonb_path_exists_opr', prorettype => 'bool',
9502  proargtypes => 'jsonb jsonpath', prosrc => 'jsonb_path_exists_opr' },
9503{ oid => '4011', descr => 'implementation of @@ operator',
9504  proname => 'jsonb_path_match_opr', prorettype => 'bool',
9505  proargtypes => 'jsonb jsonpath', prosrc => 'jsonb_path_match_opr' },
9506
9507# historical int8/txid_snapshot variants of xid8 functions
9508{ oid => '2939', descr => 'I/O',
9509  proname => 'txid_snapshot_in', prorettype => 'txid_snapshot',
9510  proargtypes => 'cstring', prosrc => 'pg_snapshot_in' },
9511{ oid => '2940', descr => 'I/O',
9512  proname => 'txid_snapshot_out', prorettype => 'cstring',
9513  proargtypes => 'txid_snapshot', prosrc => 'pg_snapshot_out' },
9514{ oid => '2941', descr => 'I/O',
9515  proname => 'txid_snapshot_recv', prorettype => 'txid_snapshot',
9516  proargtypes => 'internal', prosrc => 'pg_snapshot_recv' },
9517{ oid => '2942', descr => 'I/O',
9518  proname => 'txid_snapshot_send', prorettype => 'bytea',
9519  proargtypes => 'txid_snapshot', prosrc => 'pg_snapshot_send' },
9520{ oid => '2943', descr => 'get current transaction ID',
9521  proname => 'txid_current', provolatile => 's', proparallel => 'u',
9522  prorettype => 'int8', proargtypes => '', prosrc => 'pg_current_xact_id' },
9523{ oid => '3348', descr => 'get current transaction ID',
9524  proname => 'txid_current_if_assigned', provolatile => 's', proparallel => 'u',
9525  prorettype => 'int8', proargtypes => '',
9526  prosrc => 'pg_current_xact_id_if_assigned' },
9527{ oid => '2944', descr => 'get current snapshot',
9528  proname => 'txid_current_snapshot', provolatile => 's',
9529  prorettype => 'txid_snapshot', proargtypes => '',
9530  prosrc => 'pg_current_snapshot' },
9531{ oid => '2945', descr => 'get xmin of snapshot',
9532  proname => 'txid_snapshot_xmin', prorettype => 'int8',
9533  proargtypes => 'txid_snapshot', prosrc => 'pg_snapshot_xmin' },
9534{ oid => '2946', descr => 'get xmax of snapshot',
9535  proname => 'txid_snapshot_xmax', prorettype => 'int8',
9536  proargtypes => 'txid_snapshot', prosrc => 'pg_snapshot_xmax' },
9537{ oid => '2947', descr => 'get set of in-progress txids in snapshot',
9538  proname => 'txid_snapshot_xip', prorows => '50', proretset => 't',
9539  prorettype => 'int8', proargtypes => 'txid_snapshot',
9540  prosrc => 'pg_snapshot_xip' },
9541{ oid => '2948', descr => 'is txid visible in snapshot?',
9542  proname => 'txid_visible_in_snapshot', prorettype => 'bool',
9543  proargtypes => 'int8 txid_snapshot', prosrc => 'pg_visible_in_snapshot' },
9544{ oid => '3360', descr => 'commit status of transaction',
9545  proname => 'txid_status', provolatile => 'v', prorettype => 'text',
9546  proargtypes => 'int8', prosrc => 'pg_xact_status' },
9547
9548# pg_snapshot functions
9549{ oid => '5055', descr => 'I/O',
9550  proname => 'pg_snapshot_in', prorettype => 'pg_snapshot',
9551  proargtypes => 'cstring', prosrc => 'pg_snapshot_in' },
9552{ oid => '5056', descr => 'I/O',
9553  proname => 'pg_snapshot_out', prorettype => 'cstring',
9554  proargtypes => 'pg_snapshot', prosrc => 'pg_snapshot_out' },
9555{ oid => '5057', descr => 'I/O',
9556  proname => 'pg_snapshot_recv', prorettype => 'pg_snapshot',
9557  proargtypes => 'internal', prosrc => 'pg_snapshot_recv' },
9558{ oid => '5058', descr => 'I/O',
9559  proname => 'pg_snapshot_send', prorettype => 'bytea',
9560  proargtypes => 'pg_snapshot', prosrc => 'pg_snapshot_send' },
9561{ oid => '5061', descr => 'get current snapshot',
9562  proname => 'pg_current_snapshot', provolatile => 's',
9563  prorettype => 'pg_snapshot', proargtypes => '',
9564  prosrc => 'pg_current_snapshot' },
9565{ oid => '5062', descr => 'get xmin of snapshot',
9566  proname => 'pg_snapshot_xmin', prorettype => 'xid8',
9567  proargtypes => 'pg_snapshot', prosrc => 'pg_snapshot_xmin' },
9568{ oid => '5063', descr => 'get xmax of snapshot',
9569  proname => 'pg_snapshot_xmax', prorettype => 'xid8',
9570  proargtypes => 'pg_snapshot', prosrc => 'pg_snapshot_xmax' },
9571{ oid => '5064', descr => 'get set of in-progress transactions in snapshot',
9572  proname => 'pg_snapshot_xip', prorows => '50', proretset => 't',
9573  prorettype => 'xid8', proargtypes => 'pg_snapshot',
9574  prosrc => 'pg_snapshot_xip' },
9575{ oid => '5065', descr => 'is xid8 visible in snapshot?',
9576  proname => 'pg_visible_in_snapshot', prorettype => 'bool',
9577  proargtypes => 'xid8 pg_snapshot', prosrc => 'pg_visible_in_snapshot' },
9578
9579# transaction ID and status functions
9580{ oid => '5059', descr => 'get current transaction ID',
9581  proname => 'pg_current_xact_id', provolatile => 's', proparallel => 'u',
9582  prorettype => 'xid8', proargtypes => '', prosrc => 'pg_current_xact_id' },
9583{ oid => '5060', descr => 'get current transaction ID',
9584  proname => 'pg_current_xact_id_if_assigned', provolatile => 's',
9585  proparallel => 'u', prorettype => 'xid8', proargtypes => '',
9586  prosrc => 'pg_current_xact_id_if_assigned' },
9587{ oid => '5066', descr => 'commit status of transaction',
9588  proname => 'pg_xact_status', provolatile => 'v', prorettype => 'text',
9589  proargtypes => 'xid8', prosrc => 'pg_xact_status' },
9590
9591# record comparison using normal comparison rules
9592{ oid => '2981',
9593  proname => 'record_eq', prorettype => 'bool', proargtypes => 'record record',
9594  prosrc => 'record_eq' },
9595{ oid => '2982',
9596  proname => 'record_ne', prorettype => 'bool', proargtypes => 'record record',
9597  prosrc => 'record_ne' },
9598{ oid => '2983',
9599  proname => 'record_lt', prorettype => 'bool', proargtypes => 'record record',
9600  prosrc => 'record_lt' },
9601{ oid => '2984',
9602  proname => 'record_gt', prorettype => 'bool', proargtypes => 'record record',
9603  prosrc => 'record_gt' },
9604{ oid => '2985',
9605  proname => 'record_le', prorettype => 'bool', proargtypes => 'record record',
9606  prosrc => 'record_le' },
9607{ oid => '2986',
9608  proname => 'record_ge', prorettype => 'bool', proargtypes => 'record record',
9609  prosrc => 'record_ge' },
9610{ oid => '2987', descr => 'less-equal-greater',
9611  proname => 'btrecordcmp', prorettype => 'int4',
9612  proargtypes => 'record record', prosrc => 'btrecordcmp' },
9613
9614# record comparison using raw byte images
9615{ oid => '3181',
9616  proname => 'record_image_eq', prorettype => 'bool',
9617  proargtypes => 'record record', prosrc => 'record_image_eq' },
9618{ oid => '3182',
9619  proname => 'record_image_ne', prorettype => 'bool',
9620  proargtypes => 'record record', prosrc => 'record_image_ne' },
9621{ oid => '3183',
9622  proname => 'record_image_lt', prorettype => 'bool',
9623  proargtypes => 'record record', prosrc => 'record_image_lt' },
9624{ oid => '3184',
9625  proname => 'record_image_gt', prorettype => 'bool',
9626  proargtypes => 'record record', prosrc => 'record_image_gt' },
9627{ oid => '3185',
9628  proname => 'record_image_le', prorettype => 'bool',
9629  proargtypes => 'record record', prosrc => 'record_image_le' },
9630{ oid => '3186',
9631  proname => 'record_image_ge', prorettype => 'bool',
9632  proargtypes => 'record record', prosrc => 'record_image_ge' },
9633{ oid => '3187', descr => 'less-equal-greater based on byte images',
9634  proname => 'btrecordimagecmp', prorettype => 'int4',
9635  proargtypes => 'record record', prosrc => 'btrecordimagecmp' },
9636{ oid => '5051', descr => 'equal image',
9637  proname => 'btequalimage', prorettype => 'bool', proargtypes => 'oid',
9638  prosrc => 'btequalimage' },
9639
9640# Extensions
9641{ oid => '3082', descr => 'list available extensions',
9642  proname => 'pg_available_extensions', procost => '10', prorows => '100',
9643  proretset => 't', provolatile => 's', prorettype => 'record',
9644  proargtypes => '', proallargtypes => '{name,text,text}',
9645  proargmodes => '{o,o,o}', proargnames => '{name,default_version,comment}',
9646  prosrc => 'pg_available_extensions' },
9647{ oid => '3083', descr => 'list available extension versions',
9648  proname => 'pg_available_extension_versions', procost => '10',
9649  prorows => '100', proretset => 't', provolatile => 's',
9650  prorettype => 'record', proargtypes => '',
9651  proallargtypes => '{name,text,bool,bool,bool,name,_name,text}',
9652  proargmodes => '{o,o,o,o,o,o,o,o}',
9653  proargnames => '{name,version,superuser,trusted,relocatable,schema,requires,comment}',
9654  prosrc => 'pg_available_extension_versions' },
9655{ oid => '3084', descr => 'list an extension\'s version update paths',
9656  proname => 'pg_extension_update_paths', procost => '10', prorows => '100',
9657  proretset => 't', provolatile => 's', prorettype => 'record',
9658  proargtypes => 'name', proallargtypes => '{name,text,text,text}',
9659  proargmodes => '{i,o,o,o}', proargnames => '{name,source,target,path}',
9660  prosrc => 'pg_extension_update_paths' },
9661{ oid => '3086',
9662  descr => 'flag an extension\'s table contents to be emitted by pg_dump',
9663  proname => 'pg_extension_config_dump', provolatile => 'v', proparallel => 'u',
9664  prorettype => 'void', proargtypes => 'regclass text',
9665  prosrc => 'pg_extension_config_dump' },
9666
9667# SQL-spec window functions
9668{ oid => '3100', descr => 'row number within partition',
9669  proname => 'row_number', prokind => 'w', proisstrict => 'f',
9670  prorettype => 'int8', proargtypes => '', prosrc => 'window_row_number' },
9671{ oid => '3101', descr => 'integer rank with gaps',
9672  proname => 'rank', prokind => 'w', proisstrict => 'f', prorettype => 'int8',
9673  proargtypes => '', prosrc => 'window_rank' },
9674{ oid => '3102', descr => 'integer rank without gaps',
9675  proname => 'dense_rank', prokind => 'w', proisstrict => 'f',
9676  prorettype => 'int8', proargtypes => '', prosrc => 'window_dense_rank' },
9677{ oid => '3103', descr => 'fractional rank within partition',
9678  proname => 'percent_rank', prokind => 'w', proisstrict => 'f',
9679  prorettype => 'float8', proargtypes => '', prosrc => 'window_percent_rank' },
9680{ oid => '3104', descr => 'fractional row number within partition',
9681  proname => 'cume_dist', prokind => 'w', proisstrict => 'f',
9682  prorettype => 'float8', proargtypes => '', prosrc => 'window_cume_dist' },
9683{ oid => '3105', descr => 'split rows into N groups',
9684  proname => 'ntile', prokind => 'w', prorettype => 'int4',
9685  proargtypes => 'int4', prosrc => 'window_ntile' },
9686{ oid => '3106', descr => 'fetch the preceding row value',
9687  proname => 'lag', prokind => 'w', prorettype => 'anyelement',
9688  proargtypes => 'anyelement', prosrc => 'window_lag' },
9689{ oid => '3107', descr => 'fetch the Nth preceding row value',
9690  proname => 'lag', prokind => 'w', prorettype => 'anyelement',
9691  proargtypes => 'anyelement int4', prosrc => 'window_lag_with_offset' },
9692{ oid => '3108', descr => 'fetch the Nth preceding row value with default',
9693  proname => 'lag', prokind => 'w', prorettype => 'anyelement',
9694  proargtypes => 'anyelement int4 anyelement',
9695  prosrc => 'window_lag_with_offset_and_default' },
9696{ oid => '3109', descr => 'fetch the following row value',
9697  proname => 'lead', prokind => 'w', prorettype => 'anyelement',
9698  proargtypes => 'anyelement', prosrc => 'window_lead' },
9699{ oid => '3110', descr => 'fetch the Nth following row value',
9700  proname => 'lead', prokind => 'w', prorettype => 'anyelement',
9701  proargtypes => 'anyelement int4', prosrc => 'window_lead_with_offset' },
9702{ oid => '3111', descr => 'fetch the Nth following row value with default',
9703  proname => 'lead', prokind => 'w', prorettype => 'anyelement',
9704  proargtypes => 'anyelement int4 anyelement',
9705  prosrc => 'window_lead_with_offset_and_default' },
9706{ oid => '3112', descr => 'fetch the first row value',
9707  proname => 'first_value', prokind => 'w', prorettype => 'anyelement',
9708  proargtypes => 'anyelement', prosrc => 'window_first_value' },
9709{ oid => '3113', descr => 'fetch the last row value',
9710  proname => 'last_value', prokind => 'w', prorettype => 'anyelement',
9711  proargtypes => 'anyelement', prosrc => 'window_last_value' },
9712{ oid => '3114', descr => 'fetch the Nth row value',
9713  proname => 'nth_value', prokind => 'w', prorettype => 'anyelement',
9714  proargtypes => 'anyelement int4', prosrc => 'window_nth_value' },
9715
9716# functions for range types
9717{ oid => '3832', descr => 'I/O',
9718  proname => 'anyrange_in', provolatile => 's', prorettype => 'anyrange',
9719  proargtypes => 'cstring oid int4', prosrc => 'anyrange_in' },
9720{ oid => '3833', descr => 'I/O',
9721  proname => 'anyrange_out', provolatile => 's', prorettype => 'cstring',
9722  proargtypes => 'anyrange', prosrc => 'anyrange_out' },
9723{ oid => '3834', descr => 'I/O',
9724  proname => 'range_in', provolatile => 's', prorettype => 'anyrange',
9725  proargtypes => 'cstring oid int4', prosrc => 'range_in' },
9726{ oid => '3835', descr => 'I/O',
9727  proname => 'range_out', provolatile => 's', prorettype => 'cstring',
9728  proargtypes => 'anyrange', prosrc => 'range_out' },
9729{ oid => '3836', descr => 'I/O',
9730  proname => 'range_recv', provolatile => 's', prorettype => 'anyrange',
9731  proargtypes => 'internal oid int4', prosrc => 'range_recv' },
9732{ oid => '3837', descr => 'I/O',
9733  proname => 'range_send', provolatile => 's', prorettype => 'bytea',
9734  proargtypes => 'anyrange', prosrc => 'range_send' },
9735{ oid => '3848', descr => 'lower bound of range',
9736  proname => 'lower', prorettype => 'anyelement', proargtypes => 'anyrange',
9737  prosrc => 'range_lower' },
9738{ oid => '3849', descr => 'upper bound of range',
9739  proname => 'upper', prorettype => 'anyelement', proargtypes => 'anyrange',
9740  prosrc => 'range_upper' },
9741{ oid => '3850', descr => 'is the range empty?',
9742  proname => 'isempty', prorettype => 'bool', proargtypes => 'anyrange',
9743  prosrc => 'range_empty' },
9744{ oid => '3851', descr => 'is the range\'s lower bound inclusive?',
9745  proname => 'lower_inc', prorettype => 'bool', proargtypes => 'anyrange',
9746  prosrc => 'range_lower_inc' },
9747{ oid => '3852', descr => 'is the range\'s upper bound inclusive?',
9748  proname => 'upper_inc', prorettype => 'bool', proargtypes => 'anyrange',
9749  prosrc => 'range_upper_inc' },
9750{ oid => '3853', descr => 'is the range\'s lower bound infinite?',
9751  proname => 'lower_inf', prorettype => 'bool', proargtypes => 'anyrange',
9752  prosrc => 'range_lower_inf' },
9753{ oid => '3854', descr => 'is the range\'s upper bound infinite?',
9754  proname => 'upper_inf', prorettype => 'bool', proargtypes => 'anyrange',
9755  prosrc => 'range_upper_inf' },
9756{ oid => '3855',
9757  proname => 'range_eq', prorettype => 'bool',
9758  proargtypes => 'anyrange anyrange', prosrc => 'range_eq' },
9759{ oid => '3856',
9760  proname => 'range_ne', prorettype => 'bool',
9761  proargtypes => 'anyrange anyrange', prosrc => 'range_ne' },
9762{ oid => '3857',
9763  proname => 'range_overlaps', prorettype => 'bool',
9764  proargtypes => 'anyrange anyrange', prosrc => 'range_overlaps' },
9765{ oid => '3858',
9766  proname => 'range_contains_elem', prorettype => 'bool',
9767  proargtypes => 'anyrange anyelement', prosrc => 'range_contains_elem' },
9768{ oid => '3859',
9769  proname => 'range_contains', prorettype => 'bool',
9770  proargtypes => 'anyrange anyrange', prosrc => 'range_contains' },
9771{ oid => '3860',
9772  proname => 'elem_contained_by_range', prorettype => 'bool',
9773  proargtypes => 'anyelement anyrange', prosrc => 'elem_contained_by_range' },
9774{ oid => '3861',
9775  proname => 'range_contained_by', prorettype => 'bool',
9776  proargtypes => 'anyrange anyrange', prosrc => 'range_contained_by' },
9777{ oid => '3862',
9778  proname => 'range_adjacent', prorettype => 'bool',
9779  proargtypes => 'anyrange anyrange', prosrc => 'range_adjacent' },
9780{ oid => '3863',
9781  proname => 'range_before', prorettype => 'bool',
9782  proargtypes => 'anyrange anyrange', prosrc => 'range_before' },
9783{ oid => '3864',
9784  proname => 'range_after', prorettype => 'bool',
9785  proargtypes => 'anyrange anyrange', prosrc => 'range_after' },
9786{ oid => '3865',
9787  proname => 'range_overleft', prorettype => 'bool',
9788  proargtypes => 'anyrange anyrange', prosrc => 'range_overleft' },
9789{ oid => '3866',
9790  proname => 'range_overright', prorettype => 'bool',
9791  proargtypes => 'anyrange anyrange', prosrc => 'range_overright' },
9792{ oid => '3867',
9793  proname => 'range_union', prorettype => 'anyrange',
9794  proargtypes => 'anyrange anyrange', prosrc => 'range_union' },
9795{ oid => '4057',
9796  descr => 'the smallest range which includes both of the given ranges',
9797  proname => 'range_merge', prorettype => 'anyrange',
9798  proargtypes => 'anyrange anyrange', prosrc => 'range_merge' },
9799{ oid => '3868',
9800  proname => 'range_intersect', prorettype => 'anyrange',
9801  proargtypes => 'anyrange anyrange', prosrc => 'range_intersect' },
9802{ oid => '3869',
9803  proname => 'range_minus', prorettype => 'anyrange',
9804  proargtypes => 'anyrange anyrange', prosrc => 'range_minus' },
9805{ oid => '3870', descr => 'less-equal-greater',
9806  proname => 'range_cmp', prorettype => 'int4',
9807  proargtypes => 'anyrange anyrange', prosrc => 'range_cmp' },
9808{ oid => '3871',
9809  proname => 'range_lt', prorettype => 'bool',
9810  proargtypes => 'anyrange anyrange', prosrc => 'range_lt' },
9811{ oid => '3872',
9812  proname => 'range_le', prorettype => 'bool',
9813  proargtypes => 'anyrange anyrange', prosrc => 'range_le' },
9814{ oid => '3873',
9815  proname => 'range_ge', prorettype => 'bool',
9816  proargtypes => 'anyrange anyrange', prosrc => 'range_ge' },
9817{ oid => '3874',
9818  proname => 'range_gt', prorettype => 'bool',
9819  proargtypes => 'anyrange anyrange', prosrc => 'range_gt' },
9820{ oid => '3875', descr => 'GiST support',
9821  proname => 'range_gist_consistent', prorettype => 'bool',
9822  proargtypes => 'internal anyrange int2 oid internal',
9823  prosrc => 'range_gist_consistent' },
9824{ oid => '3876', descr => 'GiST support',
9825  proname => 'range_gist_union', prorettype => 'anyrange',
9826  proargtypes => 'internal internal', prosrc => 'range_gist_union' },
9827{ oid => '3879', descr => 'GiST support',
9828  proname => 'range_gist_penalty', prorettype => 'internal',
9829  proargtypes => 'internal internal internal', prosrc => 'range_gist_penalty' },
9830{ oid => '3880', descr => 'GiST support',
9831  proname => 'range_gist_picksplit', prorettype => 'internal',
9832  proargtypes => 'internal internal', prosrc => 'range_gist_picksplit' },
9833{ oid => '3881', descr => 'GiST support',
9834  proname => 'range_gist_same', prorettype => 'internal',
9835  proargtypes => 'anyrange anyrange internal', prosrc => 'range_gist_same' },
9836{ oid => '3902', descr => 'hash a range',
9837  proname => 'hash_range', prorettype => 'int4', proargtypes => 'anyrange',
9838  prosrc => 'hash_range' },
9839{ oid => '3417', descr => 'hash a range',
9840  proname => 'hash_range_extended', prorettype => 'int8',
9841  proargtypes => 'anyrange int8', prosrc => 'hash_range_extended' },
9842{ oid => '3916', descr => 'range typanalyze',
9843  proname => 'range_typanalyze', provolatile => 's', prorettype => 'bool',
9844  proargtypes => 'internal', prosrc => 'range_typanalyze' },
9845{ oid => '3169', descr => 'restriction selectivity for range operators',
9846  proname => 'rangesel', provolatile => 's', prorettype => 'float8',
9847  proargtypes => 'internal oid internal int4', prosrc => 'rangesel' },
9848
9849{ oid => '3914', descr => 'convert an int4 range to canonical form',
9850  proname => 'int4range_canonical', prorettype => 'int4range',
9851  proargtypes => 'int4range', prosrc => 'int4range_canonical' },
9852{ oid => '3928', descr => 'convert an int8 range to canonical form',
9853  proname => 'int8range_canonical', prorettype => 'int8range',
9854  proargtypes => 'int8range', prosrc => 'int8range_canonical' },
9855{ oid => '3915', descr => 'convert a date range to canonical form',
9856  proname => 'daterange_canonical', prorettype => 'daterange',
9857  proargtypes => 'daterange', prosrc => 'daterange_canonical' },
9858{ oid => '3922', descr => 'float8 difference of two int4 values',
9859  proname => 'int4range_subdiff', prorettype => 'float8',
9860  proargtypes => 'int4 int4', prosrc => 'int4range_subdiff' },
9861{ oid => '3923', descr => 'float8 difference of two int8 values',
9862  proname => 'int8range_subdiff', prorettype => 'float8',
9863  proargtypes => 'int8 int8', prosrc => 'int8range_subdiff' },
9864{ oid => '3924', descr => 'float8 difference of two numeric values',
9865  proname => 'numrange_subdiff', prorettype => 'float8',
9866  proargtypes => 'numeric numeric', prosrc => 'numrange_subdiff' },
9867{ oid => '3925', descr => 'float8 difference of two date values',
9868  proname => 'daterange_subdiff', prorettype => 'float8',
9869  proargtypes => 'date date', prosrc => 'daterange_subdiff' },
9870{ oid => '3929', descr => 'float8 difference of two timestamp values',
9871  proname => 'tsrange_subdiff', prorettype => 'float8',
9872  proargtypes => 'timestamp timestamp', prosrc => 'tsrange_subdiff' },
9873{ oid => '3930',
9874  descr => 'float8 difference of two timestamp with time zone values',
9875  proname => 'tstzrange_subdiff', prorettype => 'float8',
9876  proargtypes => 'timestamptz timestamptz', prosrc => 'tstzrange_subdiff' },
9877
9878{ oid => '3840', descr => 'int4range constructor',
9879  proname => 'int4range', proisstrict => 'f', prorettype => 'int4range',
9880  proargtypes => 'int4 int4', prosrc => 'range_constructor2' },
9881{ oid => '3841', descr => 'int4range constructor',
9882  proname => 'int4range', proisstrict => 'f', prorettype => 'int4range',
9883  proargtypes => 'int4 int4 text', prosrc => 'range_constructor3' },
9884{ oid => '3844', descr => 'numrange constructor',
9885  proname => 'numrange', proisstrict => 'f', prorettype => 'numrange',
9886  proargtypes => 'numeric numeric', prosrc => 'range_constructor2' },
9887{ oid => '3845', descr => 'numrange constructor',
9888  proname => 'numrange', proisstrict => 'f', prorettype => 'numrange',
9889  proargtypes => 'numeric numeric text', prosrc => 'range_constructor3' },
9890{ oid => '3933', descr => 'tsrange constructor',
9891  proname => 'tsrange', proisstrict => 'f', prorettype => 'tsrange',
9892  proargtypes => 'timestamp timestamp', prosrc => 'range_constructor2' },
9893{ oid => '3934', descr => 'tsrange constructor',
9894  proname => 'tsrange', proisstrict => 'f', prorettype => 'tsrange',
9895  proargtypes => 'timestamp timestamp text', prosrc => 'range_constructor3' },
9896{ oid => '3937', descr => 'tstzrange constructor',
9897  proname => 'tstzrange', proisstrict => 'f', prorettype => 'tstzrange',
9898  proargtypes => 'timestamptz timestamptz', prosrc => 'range_constructor2' },
9899{ oid => '3938', descr => 'tstzrange constructor',
9900  proname => 'tstzrange', proisstrict => 'f', prorettype => 'tstzrange',
9901  proargtypes => 'timestamptz timestamptz text',
9902  prosrc => 'range_constructor3' },
9903{ oid => '3941', descr => 'daterange constructor',
9904  proname => 'daterange', proisstrict => 'f', prorettype => 'daterange',
9905  proargtypes => 'date date', prosrc => 'range_constructor2' },
9906{ oid => '3942', descr => 'daterange constructor',
9907  proname => 'daterange', proisstrict => 'f', prorettype => 'daterange',
9908  proargtypes => 'date date text', prosrc => 'range_constructor3' },
9909{ oid => '3945', descr => 'int8range constructor',
9910  proname => 'int8range', proisstrict => 'f', prorettype => 'int8range',
9911  proargtypes => 'int8 int8', prosrc => 'range_constructor2' },
9912{ oid => '3946', descr => 'int8range constructor',
9913  proname => 'int8range', proisstrict => 'f', prorettype => 'int8range',
9914  proargtypes => 'int8 int8 text', prosrc => 'range_constructor3' },
9915
9916# date, time, timestamp constructors
9917{ oid => '3846', descr => 'construct date',
9918  proname => 'make_date', prorettype => 'date', proargtypes => 'int4 int4 int4',
9919  proargnames => '{year,month,day}', prosrc => 'make_date' },
9920{ oid => '3847', descr => 'construct time',
9921  proname => 'make_time', prorettype => 'time',
9922  proargtypes => 'int4 int4 float8', proargnames => '{hour,min,sec}',
9923  prosrc => 'make_time' },
9924{ oid => '3461', descr => 'construct timestamp',
9925  proname => 'make_timestamp', prorettype => 'timestamp',
9926  proargtypes => 'int4 int4 int4 int4 int4 float8',
9927  proargnames => '{year,month,mday,hour,min,sec}', prosrc => 'make_timestamp' },
9928{ oid => '3462', descr => 'construct timestamp with time zone',
9929  proname => 'make_timestamptz', provolatile => 's',
9930  prorettype => 'timestamptz', proargtypes => 'int4 int4 int4 int4 int4 float8',
9931  proargnames => '{year,month,mday,hour,min,sec}',
9932  prosrc => 'make_timestamptz' },
9933{ oid => '3463', descr => 'construct timestamp with time zone',
9934  proname => 'make_timestamptz', provolatile => 's',
9935  prorettype => 'timestamptz',
9936  proargtypes => 'int4 int4 int4 int4 int4 float8 text',
9937  proargnames => '{year,month,mday,hour,min,sec,timezone}',
9938  prosrc => 'make_timestamptz_at_timezone' },
9939{ oid => '3464', descr => 'construct interval',
9940  proname => 'make_interval', prorettype => 'interval',
9941  proargtypes => 'int4 int4 int4 int4 int4 int4 float8',
9942  proargnames => '{years,months,weeks,days,hours,mins,secs}',
9943  prosrc => 'make_interval' },
9944
9945# spgist opclasses
9946{ oid => '4018', descr => 'SP-GiST support for quad tree over point',
9947  proname => 'spg_quad_config', prorettype => 'void',
9948  proargtypes => 'internal internal', prosrc => 'spg_quad_config' },
9949{ oid => '4019', descr => 'SP-GiST support for quad tree over point',
9950  proname => 'spg_quad_choose', prorettype => 'void',
9951  proargtypes => 'internal internal', prosrc => 'spg_quad_choose' },
9952{ oid => '4020', descr => 'SP-GiST support for quad tree over point',
9953  proname => 'spg_quad_picksplit', prorettype => 'void',
9954  proargtypes => 'internal internal', prosrc => 'spg_quad_picksplit' },
9955{ oid => '4021', descr => 'SP-GiST support for quad tree over point',
9956  proname => 'spg_quad_inner_consistent', prorettype => 'void',
9957  proargtypes => 'internal internal', prosrc => 'spg_quad_inner_consistent' },
9958{ oid => '4022',
9959  descr => 'SP-GiST support for quad tree and k-d tree over point',
9960  proname => 'spg_quad_leaf_consistent', prorettype => 'bool',
9961  proargtypes => 'internal internal', prosrc => 'spg_quad_leaf_consistent' },
9962
9963{ oid => '4023', descr => 'SP-GiST support for k-d tree over point',
9964  proname => 'spg_kd_config', prorettype => 'void',
9965  proargtypes => 'internal internal', prosrc => 'spg_kd_config' },
9966{ oid => '4024', descr => 'SP-GiST support for k-d tree over point',
9967  proname => 'spg_kd_choose', prorettype => 'void',
9968  proargtypes => 'internal internal', prosrc => 'spg_kd_choose' },
9969{ oid => '4025', descr => 'SP-GiST support for k-d tree over point',
9970  proname => 'spg_kd_picksplit', prorettype => 'void',
9971  proargtypes => 'internal internal', prosrc => 'spg_kd_picksplit' },
9972{ oid => '4026', descr => 'SP-GiST support for k-d tree over point',
9973  proname => 'spg_kd_inner_consistent', prorettype => 'void',
9974  proargtypes => 'internal internal', prosrc => 'spg_kd_inner_consistent' },
9975
9976{ oid => '4027', descr => 'SP-GiST support for radix tree over text',
9977  proname => 'spg_text_config', prorettype => 'void',
9978  proargtypes => 'internal internal', prosrc => 'spg_text_config' },
9979{ oid => '4028', descr => 'SP-GiST support for radix tree over text',
9980  proname => 'spg_text_choose', prorettype => 'void',
9981  proargtypes => 'internal internal', prosrc => 'spg_text_choose' },
9982{ oid => '4029', descr => 'SP-GiST support for radix tree over text',
9983  proname => 'spg_text_picksplit', prorettype => 'void',
9984  proargtypes => 'internal internal', prosrc => 'spg_text_picksplit' },
9985{ oid => '4030', descr => 'SP-GiST support for radix tree over text',
9986  proname => 'spg_text_inner_consistent', prorettype => 'void',
9987  proargtypes => 'internal internal', prosrc => 'spg_text_inner_consistent' },
9988{ oid => '4031', descr => 'SP-GiST support for radix tree over text',
9989  proname => 'spg_text_leaf_consistent', prorettype => 'bool',
9990  proargtypes => 'internal internal', prosrc => 'spg_text_leaf_consistent' },
9991
9992{ oid => '3469', descr => 'SP-GiST support for quad tree over range',
9993  proname => 'spg_range_quad_config', prorettype => 'void',
9994  proargtypes => 'internal internal', prosrc => 'spg_range_quad_config' },
9995{ oid => '3470', descr => 'SP-GiST support for quad tree over range',
9996  proname => 'spg_range_quad_choose', prorettype => 'void',
9997  proargtypes => 'internal internal', prosrc => 'spg_range_quad_choose' },
9998{ oid => '3471', descr => 'SP-GiST support for quad tree over range',
9999  proname => 'spg_range_quad_picksplit', prorettype => 'void',
10000  proargtypes => 'internal internal', prosrc => 'spg_range_quad_picksplit' },
10001{ oid => '3472', descr => 'SP-GiST support for quad tree over range',
10002  proname => 'spg_range_quad_inner_consistent', prorettype => 'void',
10003  proargtypes => 'internal internal',
10004  prosrc => 'spg_range_quad_inner_consistent' },
10005{ oid => '3473', descr => 'SP-GiST support for quad tree over range',
10006  proname => 'spg_range_quad_leaf_consistent', prorettype => 'bool',
10007  proargtypes => 'internal internal',
10008  prosrc => 'spg_range_quad_leaf_consistent' },
10009
10010{ oid => '5012', descr => 'SP-GiST support for quad tree over box',
10011  proname => 'spg_box_quad_config', prorettype => 'void',
10012  proargtypes => 'internal internal', prosrc => 'spg_box_quad_config' },
10013{ oid => '5013', descr => 'SP-GiST support for quad tree over box',
10014  proname => 'spg_box_quad_choose', prorettype => 'void',
10015  proargtypes => 'internal internal', prosrc => 'spg_box_quad_choose' },
10016{ oid => '5014', descr => 'SP-GiST support for quad tree over box',
10017  proname => 'spg_box_quad_picksplit', prorettype => 'void',
10018  proargtypes => 'internal internal', prosrc => 'spg_box_quad_picksplit' },
10019{ oid => '5015', descr => 'SP-GiST support for quad tree over box',
10020  proname => 'spg_box_quad_inner_consistent', prorettype => 'void',
10021  proargtypes => 'internal internal',
10022  prosrc => 'spg_box_quad_inner_consistent' },
10023{ oid => '5016', descr => 'SP-GiST support for quad tree over box',
10024  proname => 'spg_box_quad_leaf_consistent', prorettype => 'bool',
10025  proargtypes => 'internal internal',
10026  prosrc => 'spg_box_quad_leaf_consistent' },
10027
10028{ oid => '5010',
10029  descr => 'SP-GiST support for quad tree over 2-D types represented by their bounding boxes',
10030  proname => 'spg_bbox_quad_config', prorettype => 'void',
10031  proargtypes => 'internal internal', prosrc => 'spg_bbox_quad_config' },
10032{ oid => '5011', descr => 'SP-GiST support for quad tree over polygons',
10033  proname => 'spg_poly_quad_compress', prorettype => 'box',
10034  proargtypes => 'polygon', prosrc => 'spg_poly_quad_compress' },
10035
10036# replication slots
10037{ oid => '3779', descr => 'create a physical replication slot',
10038  proname => 'pg_create_physical_replication_slot', provolatile => 'v',
10039  proparallel => 'u', prorettype => 'record', proargtypes => 'name bool bool',
10040  proallargtypes => '{name,bool,bool,name,pg_lsn}',
10041  proargmodes => '{i,i,i,o,o}',
10042  proargnames => '{slot_name,immediately_reserve,temporary,slot_name,lsn}',
10043  prosrc => 'pg_create_physical_replication_slot' },
10044{ oid => '4220',
10045  descr => 'copy a physical replication slot, changing temporality',
10046  proname => 'pg_copy_physical_replication_slot', provolatile => 'v',
10047  proparallel => 'u', prorettype => 'record', proargtypes => 'name name bool',
10048  proallargtypes => '{name,name,bool,name,pg_lsn}',
10049  proargmodes => '{i,i,i,o,o}',
10050  proargnames => '{src_slot_name,dst_slot_name,temporary,slot_name,lsn}',
10051  prosrc => 'pg_copy_physical_replication_slot_a' },
10052{ oid => '4221', descr => 'copy a physical replication slot',
10053  proname => 'pg_copy_physical_replication_slot', provolatile => 'v',
10054  proparallel => 'u', prorettype => 'record', proargtypes => 'name name',
10055  proallargtypes => '{name,name,name,pg_lsn}', proargmodes => '{i,i,o,o}',
10056  proargnames => '{src_slot_name,dst_slot_name,slot_name,lsn}',
10057  prosrc => 'pg_copy_physical_replication_slot_b' },
10058{ oid => '3780', descr => 'drop a replication slot',
10059  proname => 'pg_drop_replication_slot', provolatile => 'v', proparallel => 'u',
10060  prorettype => 'void', proargtypes => 'name',
10061  prosrc => 'pg_drop_replication_slot' },
10062{ oid => '3781',
10063  descr => 'information about replication slots currently in use',
10064  proname => 'pg_get_replication_slots', prorows => '10', proisstrict => 'f',
10065  proretset => 't', provolatile => 's', prorettype => 'record',
10066  proargtypes => '',
10067  proallargtypes => '{name,name,text,oid,bool,bool,int4,xid,xid,pg_lsn,pg_lsn,text,int8}',
10068  proargmodes => '{o,o,o,o,o,o,o,o,o,o,o,o,o}',
10069  proargnames => '{slot_name,plugin,slot_type,datoid,temporary,active,active_pid,xmin,catalog_xmin,restart_lsn,confirmed_flush_lsn,wal_status,safe_wal_size}',
10070  prosrc => 'pg_get_replication_slots' },
10071{ oid => '3786', descr => 'set up a logical replication slot',
10072  proname => 'pg_create_logical_replication_slot', provolatile => 'v',
10073  proparallel => 'u', prorettype => 'record', proargtypes => 'name name bool',
10074  proallargtypes => '{name,name,bool,name,pg_lsn}',
10075  proargmodes => '{i,i,i,o,o}',
10076  proargnames => '{slot_name,plugin,temporary,slot_name,lsn}',
10077  prosrc => 'pg_create_logical_replication_slot' },
10078{ oid => '4222',
10079  descr => 'copy a logical replication slot, changing temporality and plugin',
10080  proname => 'pg_copy_logical_replication_slot', provolatile => 'v',
10081  proparallel => 'u', prorettype => 'record',
10082  proargtypes => 'name name bool name',
10083  proallargtypes => '{name,name,bool,name,name,pg_lsn}',
10084  proargmodes => '{i,i,i,i,o,o}',
10085  proargnames => '{src_slot_name,dst_slot_name,temporary,plugin,slot_name,lsn}',
10086  prosrc => 'pg_copy_logical_replication_slot_a' },
10087{ oid => '4223',
10088  descr => 'copy a logical replication slot, changing temporality',
10089  proname => 'pg_copy_logical_replication_slot', provolatile => 'v',
10090  proparallel => 'u', prorettype => 'record', proargtypes => 'name name bool',
10091  proallargtypes => '{name,name,bool,name,pg_lsn}',
10092  proargmodes => '{i,i,i,o,o}',
10093  proargnames => '{src_slot_name,dst_slot_name,temporary,slot_name,lsn}',
10094  prosrc => 'pg_copy_logical_replication_slot_b' },
10095{ oid => '4224', descr => 'copy a logical replication slot',
10096  proname => 'pg_copy_logical_replication_slot', provolatile => 'v',
10097  proparallel => 'u', prorettype => 'record', proargtypes => 'name name',
10098  proallargtypes => '{name,name,name,pg_lsn}', proargmodes => '{i,i,o,o}',
10099  proargnames => '{src_slot_name,dst_slot_name,slot_name,lsn}',
10100  prosrc => 'pg_copy_logical_replication_slot_c' },
10101{ oid => '3782', descr => 'get changes from replication slot',
10102  proname => 'pg_logical_slot_get_changes', procost => '1000',
10103  prorows => '1000', provariadic => 'text', proisstrict => 'f',
10104  proretset => 't', provolatile => 'v', proparallel => 'u',
10105  prorettype => 'record', proargtypes => 'name pg_lsn int4 _text',
10106  proallargtypes => '{name,pg_lsn,int4,_text,pg_lsn,xid,text}',
10107  proargmodes => '{i,i,i,v,o,o,o}',
10108  proargnames => '{slot_name,upto_lsn,upto_nchanges,options,lsn,xid,data}',
10109  prosrc => 'pg_logical_slot_get_changes' },
10110{ oid => '3783', descr => 'get binary changes from replication slot',
10111  proname => 'pg_logical_slot_get_binary_changes', procost => '1000',
10112  prorows => '1000', provariadic => 'text', proisstrict => 'f',
10113  proretset => 't', provolatile => 'v', proparallel => 'u',
10114  prorettype => 'record', proargtypes => 'name pg_lsn int4 _text',
10115  proallargtypes => '{name,pg_lsn,int4,_text,pg_lsn,xid,bytea}',
10116  proargmodes => '{i,i,i,v,o,o,o}',
10117  proargnames => '{slot_name,upto_lsn,upto_nchanges,options,lsn,xid,data}',
10118  prosrc => 'pg_logical_slot_get_binary_changes' },
10119{ oid => '3784', descr => 'peek at changes from replication slot',
10120  proname => 'pg_logical_slot_peek_changes', procost => '1000',
10121  prorows => '1000', provariadic => 'text', proisstrict => 'f',
10122  proretset => 't', provolatile => 'v', proparallel => 'u',
10123  prorettype => 'record', proargtypes => 'name pg_lsn int4 _text',
10124  proallargtypes => '{name,pg_lsn,int4,_text,pg_lsn,xid,text}',
10125  proargmodes => '{i,i,i,v,o,o,o}',
10126  proargnames => '{slot_name,upto_lsn,upto_nchanges,options,lsn,xid,data}',
10127  prosrc => 'pg_logical_slot_peek_changes' },
10128{ oid => '3785', descr => 'peek at binary changes from replication slot',
10129  proname => 'pg_logical_slot_peek_binary_changes', procost => '1000',
10130  prorows => '1000', provariadic => 'text', proisstrict => 'f',
10131  proretset => 't', provolatile => 'v', proparallel => 'u',
10132  prorettype => 'record', proargtypes => 'name pg_lsn int4 _text',
10133  proallargtypes => '{name,pg_lsn,int4,_text,pg_lsn,xid,bytea}',
10134  proargmodes => '{i,i,i,v,o,o,o}',
10135  proargnames => '{slot_name,upto_lsn,upto_nchanges,options,lsn,xid,data}',
10136  prosrc => 'pg_logical_slot_peek_binary_changes' },
10137{ oid => '3878', descr => 'advance logical replication slot',
10138  proname => 'pg_replication_slot_advance', provolatile => 'v',
10139  proparallel => 'u', prorettype => 'record', proargtypes => 'name pg_lsn',
10140  proallargtypes => '{name,pg_lsn,name,pg_lsn}', proargmodes => '{i,i,o,o}',
10141  proargnames => '{slot_name,upto_lsn,slot_name,end_lsn}',
10142  prosrc => 'pg_replication_slot_advance' },
10143{ oid => '3577', descr => 'emit a textual logical decoding message',
10144  proname => 'pg_logical_emit_message', provolatile => 'v', proparallel => 'u',
10145  prorettype => 'pg_lsn', proargtypes => 'bool text text',
10146  prosrc => 'pg_logical_emit_message_text' },
10147{ oid => '3578', descr => 'emit a binary logical decoding message',
10148  proname => 'pg_logical_emit_message', provolatile => 'v', proparallel => 'u',
10149  prorettype => 'pg_lsn', proargtypes => 'bool text bytea',
10150  prosrc => 'pg_logical_emit_message_bytea' },
10151
10152# event triggers
10153{ oid => '3566', descr => 'list objects dropped by the current command',
10154  proname => 'pg_event_trigger_dropped_objects', procost => '10',
10155  prorows => '100', proretset => 't', provolatile => 's', proparallel => 'r',
10156  prorettype => 'record', proargtypes => '',
10157  proallargtypes => '{oid,oid,int4,bool,bool,bool,text,text,text,text,_text,_text}',
10158  proargmodes => '{o,o,o,o,o,o,o,o,o,o,o,o}',
10159  proargnames => '{classid, objid, objsubid, original, normal, is_temporary, object_type, schema_name, object_name, object_identity, address_names, address_args}',
10160  prosrc => 'pg_event_trigger_dropped_objects' },
10161{ oid => '4566', descr => 'return Oid of the table getting rewritten',
10162  proname => 'pg_event_trigger_table_rewrite_oid', provolatile => 's',
10163  proparallel => 'r', prorettype => 'oid', proargtypes => '',
10164  proallargtypes => '{oid}', proargmodes => '{o}', proargnames => '{oid}',
10165  prosrc => 'pg_event_trigger_table_rewrite_oid' },
10166{ oid => '4567', descr => 'return reason code for table getting rewritten',
10167  proname => 'pg_event_trigger_table_rewrite_reason', provolatile => 's',
10168  proparallel => 'r', prorettype => 'int4', proargtypes => '',
10169  prosrc => 'pg_event_trigger_table_rewrite_reason' },
10170{ oid => '4568',
10171  descr => 'list DDL actions being executed by the current command',
10172  proname => 'pg_event_trigger_ddl_commands', procost => '10', prorows => '100',
10173  proretset => 't', provolatile => 's', proparallel => 'r',
10174  prorettype => 'record', proargtypes => '',
10175  proallargtypes => '{oid,oid,int4,text,text,text,text,bool,pg_ddl_command}',
10176  proargmodes => '{o,o,o,o,o,o,o,o,o}',
10177  proargnames => '{classid, objid, objsubid, command_tag, object_type, schema_name, object_identity, in_extension, command}',
10178  prosrc => 'pg_event_trigger_ddl_commands' },
10179
10180# generic transition functions for ordered-set aggregates
10181{ oid => '3970', descr => 'aggregate transition function',
10182  proname => 'ordered_set_transition', proisstrict => 'f',
10183  prorettype => 'internal', proargtypes => 'internal any',
10184  prosrc => 'ordered_set_transition' },
10185{ oid => '3971', descr => 'aggregate transition function',
10186  proname => 'ordered_set_transition_multi', provariadic => 'any',
10187  proisstrict => 'f', prorettype => 'internal', proargtypes => 'internal any',
10188  proallargtypes => '{internal,any}', proargmodes => '{i,v}',
10189  prosrc => 'ordered_set_transition_multi' },
10190
10191# inverse distribution aggregates (and their support functions)
10192{ oid => '3972', descr => 'discrete percentile',
10193  proname => 'percentile_disc', prokind => 'a', proisstrict => 'f',
10194  prorettype => 'anyelement', proargtypes => 'float8 anyelement',
10195  prosrc => 'aggregate_dummy' },
10196{ oid => '3973', descr => 'aggregate final function',
10197  proname => 'percentile_disc_final', proisstrict => 'f',
10198  prorettype => 'anyelement', proargtypes => 'internal float8 anyelement',
10199  prosrc => 'percentile_disc_final' },
10200{ oid => '3974', descr => 'continuous distribution percentile',
10201  proname => 'percentile_cont', prokind => 'a', proisstrict => 'f',
10202  prorettype => 'float8', proargtypes => 'float8 float8',
10203  prosrc => 'aggregate_dummy' },
10204{ oid => '3975', descr => 'aggregate final function',
10205  proname => 'percentile_cont_float8_final', proisstrict => 'f',
10206  prorettype => 'float8', proargtypes => 'internal float8',
10207  prosrc => 'percentile_cont_float8_final' },
10208{ oid => '3976', descr => 'continuous distribution percentile',
10209  proname => 'percentile_cont', prokind => 'a', proisstrict => 'f',
10210  prorettype => 'interval', proargtypes => 'float8 interval',
10211  prosrc => 'aggregate_dummy' },
10212{ oid => '3977', descr => 'aggregate final function',
10213  proname => 'percentile_cont_interval_final', proisstrict => 'f',
10214  prorettype => 'interval', proargtypes => 'internal float8',
10215  prosrc => 'percentile_cont_interval_final' },
10216{ oid => '3978', descr => 'multiple discrete percentiles',
10217  proname => 'percentile_disc', prokind => 'a', proisstrict => 'f',
10218  prorettype => 'anyarray', proargtypes => '_float8 anyelement',
10219  prosrc => 'aggregate_dummy' },
10220{ oid => '3979', descr => 'aggregate final function',
10221  proname => 'percentile_disc_multi_final', proisstrict => 'f',
10222  prorettype => 'anyarray', proargtypes => 'internal _float8 anyelement',
10223  prosrc => 'percentile_disc_multi_final' },
10224{ oid => '3980', descr => 'multiple continuous percentiles',
10225  proname => 'percentile_cont', prokind => 'a', proisstrict => 'f',
10226  prorettype => '_float8', proargtypes => '_float8 float8',
10227  prosrc => 'aggregate_dummy' },
10228{ oid => '3981', descr => 'aggregate final function',
10229  proname => 'percentile_cont_float8_multi_final', proisstrict => 'f',
10230  prorettype => '_float8', proargtypes => 'internal _float8',
10231  prosrc => 'percentile_cont_float8_multi_final' },
10232{ oid => '3982', descr => 'multiple continuous percentiles',
10233  proname => 'percentile_cont', prokind => 'a', proisstrict => 'f',
10234  prorettype => '_interval', proargtypes => '_float8 interval',
10235  prosrc => 'aggregate_dummy' },
10236{ oid => '3983', descr => 'aggregate final function',
10237  proname => 'percentile_cont_interval_multi_final', proisstrict => 'f',
10238  prorettype => '_interval', proargtypes => 'internal _float8',
10239  prosrc => 'percentile_cont_interval_multi_final' },
10240{ oid => '3984', descr => 'most common value',
10241  proname => 'mode', prokind => 'a', proisstrict => 'f',
10242  prorettype => 'anyelement', proargtypes => 'anyelement',
10243  prosrc => 'aggregate_dummy' },
10244{ oid => '3985', descr => 'aggregate final function',
10245  proname => 'mode_final', proisstrict => 'f', prorettype => 'anyelement',
10246  proargtypes => 'internal anyelement', prosrc => 'mode_final' },
10247
10248# hypothetical-set aggregates (and their support functions)
10249{ oid => '3986', descr => 'rank of hypothetical row',
10250  proname => 'rank', provariadic => 'any', prokind => 'a', proisstrict => 'f',
10251  prorettype => 'int8', proargtypes => 'any', proallargtypes => '{any}',
10252  proargmodes => '{v}', prosrc => 'aggregate_dummy' },
10253{ oid => '3987', descr => 'aggregate final function',
10254  proname => 'rank_final', provariadic => 'any', proisstrict => 'f',
10255  prorettype => 'int8', proargtypes => 'internal any',
10256  proallargtypes => '{internal,any}', proargmodes => '{i,v}',
10257  prosrc => 'hypothetical_rank_final' },
10258{ oid => '3988', descr => 'fractional rank of hypothetical row',
10259  proname => 'percent_rank', provariadic => 'any', prokind => 'a',
10260  proisstrict => 'f', prorettype => 'float8', proargtypes => 'any',
10261  proallargtypes => '{any}', proargmodes => '{v}',
10262  prosrc => 'aggregate_dummy' },
10263{ oid => '3989', descr => 'aggregate final function',
10264  proname => 'percent_rank_final', provariadic => 'any', proisstrict => 'f',
10265  prorettype => 'float8', proargtypes => 'internal any',
10266  proallargtypes => '{internal,any}', proargmodes => '{i,v}',
10267  prosrc => 'hypothetical_percent_rank_final' },
10268{ oid => '3990', descr => 'cumulative distribution of hypothetical row',
10269  proname => 'cume_dist', provariadic => 'any', prokind => 'a',
10270  proisstrict => 'f', prorettype => 'float8', proargtypes => 'any',
10271  proallargtypes => '{any}', proargmodes => '{v}',
10272  prosrc => 'aggregate_dummy' },
10273{ oid => '3991', descr => 'aggregate final function',
10274  proname => 'cume_dist_final', provariadic => 'any', proisstrict => 'f',
10275  prorettype => 'float8', proargtypes => 'internal any',
10276  proallargtypes => '{internal,any}', proargmodes => '{i,v}',
10277  prosrc => 'hypothetical_cume_dist_final' },
10278{ oid => '3992', descr => 'rank of hypothetical row without gaps',
10279  proname => 'dense_rank', provariadic => 'any', prokind => 'a',
10280  proisstrict => 'f', prorettype => 'int8', proargtypes => 'any',
10281  proallargtypes => '{any}', proargmodes => '{v}',
10282  prosrc => 'aggregate_dummy' },
10283{ oid => '3993', descr => 'aggregate final function',
10284  proname => 'dense_rank_final', provariadic => 'any', proisstrict => 'f',
10285  prorettype => 'int8', proargtypes => 'internal any',
10286  proallargtypes => '{internal,any}', proargmodes => '{i,v}',
10287  prosrc => 'hypothetical_dense_rank_final' },
10288
10289# pg_upgrade support
10290{ oid => '3582', descr => 'for use by pg_upgrade',
10291  proname => 'binary_upgrade_set_next_pg_type_oid', provolatile => 'v',
10292  proparallel => 'r', prorettype => 'void', proargtypes => 'oid',
10293  prosrc => 'binary_upgrade_set_next_pg_type_oid' },
10294{ oid => '3584', descr => 'for use by pg_upgrade',
10295  proname => 'binary_upgrade_set_next_array_pg_type_oid', provolatile => 'v',
10296  proparallel => 'r', prorettype => 'void', proargtypes => 'oid',
10297  prosrc => 'binary_upgrade_set_next_array_pg_type_oid' },
10298{ oid => '3585', descr => 'for use by pg_upgrade',
10299  proname => 'binary_upgrade_set_next_toast_pg_type_oid', provolatile => 'v',
10300  proparallel => 'r', prorettype => 'void', proargtypes => 'oid',
10301  prosrc => 'binary_upgrade_set_next_toast_pg_type_oid' },
10302{ oid => '3586', descr => 'for use by pg_upgrade',
10303  proname => 'binary_upgrade_set_next_heap_pg_class_oid', provolatile => 'v',
10304  proparallel => 'r', prorettype => 'void', proargtypes => 'oid',
10305  prosrc => 'binary_upgrade_set_next_heap_pg_class_oid' },
10306{ oid => '3587', descr => 'for use by pg_upgrade',
10307  proname => 'binary_upgrade_set_next_index_pg_class_oid', provolatile => 'v',
10308  proparallel => 'r', prorettype => 'void', proargtypes => 'oid',
10309  prosrc => 'binary_upgrade_set_next_index_pg_class_oid' },
10310{ oid => '3588', descr => 'for use by pg_upgrade',
10311  proname => 'binary_upgrade_set_next_toast_pg_class_oid', provolatile => 'v',
10312  proparallel => 'r', prorettype => 'void', proargtypes => 'oid',
10313  prosrc => 'binary_upgrade_set_next_toast_pg_class_oid' },
10314{ oid => '3589', descr => 'for use by pg_upgrade',
10315  proname => 'binary_upgrade_set_next_pg_enum_oid', provolatile => 'v',
10316  proparallel => 'r', prorettype => 'void', proargtypes => 'oid',
10317  prosrc => 'binary_upgrade_set_next_pg_enum_oid' },
10318{ oid => '3590', descr => 'for use by pg_upgrade',
10319  proname => 'binary_upgrade_set_next_pg_authid_oid', provolatile => 'v',
10320  proparallel => 'r', prorettype => 'void', proargtypes => 'oid',
10321  prosrc => 'binary_upgrade_set_next_pg_authid_oid' },
10322{ oid => '3591', descr => 'for use by pg_upgrade',
10323  proname => 'binary_upgrade_create_empty_extension', proisstrict => 'f',
10324  provolatile => 'v', proparallel => 'u', prorettype => 'void',
10325  proargtypes => 'text text bool text _oid _text _text',
10326  prosrc => 'binary_upgrade_create_empty_extension' },
10327{ oid => '4083', descr => 'for use by pg_upgrade',
10328  proname => 'binary_upgrade_set_record_init_privs', provolatile => 'v',
10329  proparallel => 'r', prorettype => 'void', proargtypes => 'bool',
10330  prosrc => 'binary_upgrade_set_record_init_privs' },
10331{ oid => '4101', descr => 'for use by pg_upgrade',
10332  proname => 'binary_upgrade_set_missing_value', provolatile => 'v',
10333  proparallel => 'u', prorettype => 'void', proargtypes => 'oid text text',
10334  prosrc => 'binary_upgrade_set_missing_value' },
10335
10336# conversion functions
10337{ oid => '4302',
10338  descr => 'internal conversion function for KOI8R to MULE_INTERNAL',
10339  proname => 'koi8r_to_mic', prolang => 'c', prorettype => 'void',
10340  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'koi8r_to_mic',
10341  probin => '$libdir/cyrillic_and_mic' },
10342{ oid => '4303',
10343  descr => 'internal conversion function for MULE_INTERNAL to KOI8R',
10344  proname => 'mic_to_koi8r', prolang => 'c', prorettype => 'void',
10345  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'mic_to_koi8r',
10346  probin => '$libdir/cyrillic_and_mic' },
10347{ oid => '4304',
10348  descr => 'internal conversion function for ISO-8859-5 to MULE_INTERNAL',
10349  proname => 'iso_to_mic', prolang => 'c', prorettype => 'void',
10350  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'iso_to_mic',
10351  probin => '$libdir/cyrillic_and_mic' },
10352{ oid => '4305',
10353  descr => 'internal conversion function for MULE_INTERNAL to ISO-8859-5',
10354  proname => 'mic_to_iso', prolang => 'c', prorettype => 'void',
10355  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'mic_to_iso',
10356  probin => '$libdir/cyrillic_and_mic' },
10357{ oid => '4306',
10358  descr => 'internal conversion function for WIN1251 to MULE_INTERNAL',
10359  proname => 'win1251_to_mic', prolang => 'c', prorettype => 'void',
10360  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'win1251_to_mic',
10361  probin => '$libdir/cyrillic_and_mic' },
10362{ oid => '4307',
10363  descr => 'internal conversion function for MULE_INTERNAL to WIN1251',
10364  proname => 'mic_to_win1251', prolang => 'c', prorettype => 'void',
10365  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'mic_to_win1251',
10366  probin => '$libdir/cyrillic_and_mic' },
10367{ oid => '4308',
10368  descr => 'internal conversion function for WIN866 to MULE_INTERNAL',
10369  proname => 'win866_to_mic', prolang => 'c', prorettype => 'void',
10370  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'win866_to_mic',
10371  probin => '$libdir/cyrillic_and_mic' },
10372{ oid => '4309',
10373  descr => 'internal conversion function for MULE_INTERNAL to WIN866',
10374  proname => 'mic_to_win866', prolang => 'c', prorettype => 'void',
10375  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'mic_to_win866',
10376  probin => '$libdir/cyrillic_and_mic' },
10377{ oid => '4310', descr => 'internal conversion function for KOI8R to WIN1251',
10378  proname => 'koi8r_to_win1251', prolang => 'c', prorettype => 'void',
10379  proargtypes => 'int4 int4 cstring internal int4',
10380  prosrc => 'koi8r_to_win1251', probin => '$libdir/cyrillic_and_mic' },
10381{ oid => '4311', descr => 'internal conversion function for WIN1251 to KOI8R',
10382  proname => 'win1251_to_koi8r', prolang => 'c', prorettype => 'void',
10383  proargtypes => 'int4 int4 cstring internal int4',
10384  prosrc => 'win1251_to_koi8r', probin => '$libdir/cyrillic_and_mic' },
10385{ oid => '4312', descr => 'internal conversion function for KOI8R to WIN866',
10386  proname => 'koi8r_to_win866', prolang => 'c', prorettype => 'void',
10387  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'koi8r_to_win866',
10388  probin => '$libdir/cyrillic_and_mic' },
10389{ oid => '4313', descr => 'internal conversion function for WIN866 to KOI8R',
10390  proname => 'win866_to_koi8r', prolang => 'c', prorettype => 'void',
10391  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'win866_to_koi8r',
10392  probin => '$libdir/cyrillic_and_mic' },
10393{ oid => '4314',
10394  descr => 'internal conversion function for WIN866 to WIN1251',
10395  proname => 'win866_to_win1251', prolang => 'c', prorettype => 'void',
10396  proargtypes => 'int4 int4 cstring internal int4',
10397  prosrc => 'win866_to_win1251', probin => '$libdir/cyrillic_and_mic' },
10398{ oid => '4315',
10399  descr => 'internal conversion function for WIN1251 to WIN866',
10400  proname => 'win1251_to_win866', prolang => 'c', prorettype => 'void',
10401  proargtypes => 'int4 int4 cstring internal int4',
10402  prosrc => 'win1251_to_win866', probin => '$libdir/cyrillic_and_mic' },
10403{ oid => '4316',
10404  descr => 'internal conversion function for ISO-8859-5 to KOI8R',
10405  proname => 'iso_to_koi8r', prolang => 'c', prorettype => 'void',
10406  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'iso_to_koi8r',
10407  probin => '$libdir/cyrillic_and_mic' },
10408{ oid => '4317',
10409  descr => 'internal conversion function for KOI8R to ISO-8859-5',
10410  proname => 'koi8r_to_iso', prolang => 'c', prorettype => 'void',
10411  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'koi8r_to_iso',
10412  probin => '$libdir/cyrillic_and_mic' },
10413{ oid => '4318',
10414  descr => 'internal conversion function for ISO-8859-5 to WIN1251',
10415  proname => 'iso_to_win1251', prolang => 'c', prorettype => 'void',
10416  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'iso_to_win1251',
10417  probin => '$libdir/cyrillic_and_mic' },
10418{ oid => '4319',
10419  descr => 'internal conversion function for WIN1251 to ISO-8859-5',
10420  proname => 'win1251_to_iso', prolang => 'c', prorettype => 'void',
10421  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'win1251_to_iso',
10422  probin => '$libdir/cyrillic_and_mic' },
10423{ oid => '4320',
10424  descr => 'internal conversion function for ISO-8859-5 to WIN866',
10425  proname => 'iso_to_win866', prolang => 'c', prorettype => 'void',
10426  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'iso_to_win866',
10427  probin => '$libdir/cyrillic_and_mic' },
10428{ oid => '4321',
10429  descr => 'internal conversion function for WIN866 to ISO-8859-5',
10430  proname => 'win866_to_iso', prolang => 'c', prorettype => 'void',
10431  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'win866_to_iso',
10432  probin => '$libdir/cyrillic_and_mic' },
10433{ oid => '4322',
10434  descr => 'internal conversion function for EUC_CN to MULE_INTERNAL',
10435  proname => 'euc_cn_to_mic', prolang => 'c', prorettype => 'void',
10436  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'euc_cn_to_mic',
10437  probin => '$libdir/euc_cn_and_mic' },
10438{ oid => '4323',
10439  descr => 'internal conversion function for MULE_INTERNAL to EUC_CN',
10440  proname => 'mic_to_euc_cn', prolang => 'c', prorettype => 'void',
10441  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'mic_to_euc_cn',
10442  probin => '$libdir/euc_cn_and_mic' },
10443{ oid => '4324', descr => 'internal conversion function for EUC_JP to SJIS',
10444  proname => 'euc_jp_to_sjis', prolang => 'c', prorettype => 'void',
10445  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'euc_jp_to_sjis',
10446  probin => '$libdir/euc_jp_and_sjis' },
10447{ oid => '4325', descr => 'internal conversion function for SJIS to EUC_JP',
10448  proname => 'sjis_to_euc_jp', prolang => 'c', prorettype => 'void',
10449  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'sjis_to_euc_jp',
10450  probin => '$libdir/euc_jp_and_sjis' },
10451{ oid => '4326',
10452  descr => 'internal conversion function for EUC_JP to MULE_INTERNAL',
10453  proname => 'euc_jp_to_mic', prolang => 'c', prorettype => 'void',
10454  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'euc_jp_to_mic',
10455  probin => '$libdir/euc_jp_and_sjis' },
10456{ oid => '4327',
10457  descr => 'internal conversion function for SJIS to MULE_INTERNAL',
10458  proname => 'sjis_to_mic', prolang => 'c', prorettype => 'void',
10459  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'sjis_to_mic',
10460  probin => '$libdir/euc_jp_and_sjis' },
10461{ oid => '4328',
10462  descr => 'internal conversion function for MULE_INTERNAL to EUC_JP',
10463  proname => 'mic_to_euc_jp', prolang => 'c', prorettype => 'void',
10464  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'mic_to_euc_jp',
10465  probin => '$libdir/euc_jp_and_sjis' },
10466{ oid => '4329',
10467  descr => 'internal conversion function for MULE_INTERNAL to SJIS',
10468  proname => 'mic_to_sjis', prolang => 'c', prorettype => 'void',
10469  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'mic_to_sjis',
10470  probin => '$libdir/euc_jp_and_sjis' },
10471{ oid => '4330',
10472  descr => 'internal conversion function for EUC_KR to MULE_INTERNAL',
10473  proname => 'euc_kr_to_mic', prolang => 'c', prorettype => 'void',
10474  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'euc_kr_to_mic',
10475  probin => '$libdir/euc_kr_and_mic' },
10476{ oid => '4331',
10477  descr => 'internal conversion function for MULE_INTERNAL to EUC_KR',
10478  proname => 'mic_to_euc_kr', prolang => 'c', prorettype => 'void',
10479  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'mic_to_euc_kr',
10480  probin => '$libdir/euc_kr_and_mic' },
10481{ oid => '4332', descr => 'internal conversion function for EUC_TW to BIG5',
10482  proname => 'euc_tw_to_big5', prolang => 'c', prorettype => 'void',
10483  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'euc_tw_to_big5',
10484  probin => '$libdir/euc_tw_and_big5' },
10485{ oid => '4333', descr => 'internal conversion function for BIG5 to EUC_TW',
10486  proname => 'big5_to_euc_tw', prolang => 'c', prorettype => 'void',
10487  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'big5_to_euc_tw',
10488  probin => '$libdir/euc_tw_and_big5' },
10489{ oid => '4334',
10490  descr => 'internal conversion function for EUC_TW to MULE_INTERNAL',
10491  proname => 'euc_tw_to_mic', prolang => 'c', prorettype => 'void',
10492  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'euc_tw_to_mic',
10493  probin => '$libdir/euc_tw_and_big5' },
10494{ oid => '4335',
10495  descr => 'internal conversion function for BIG5 to MULE_INTERNAL',
10496  proname => 'big5_to_mic', prolang => 'c', prorettype => 'void',
10497  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'big5_to_mic',
10498  probin => '$libdir/euc_tw_and_big5' },
10499{ oid => '4336',
10500  descr => 'internal conversion function for MULE_INTERNAL to EUC_TW',
10501  proname => 'mic_to_euc_tw', prolang => 'c', prorettype => 'void',
10502  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'mic_to_euc_tw',
10503  probin => '$libdir/euc_tw_and_big5' },
10504{ oid => '4337',
10505  descr => 'internal conversion function for MULE_INTERNAL to BIG5',
10506  proname => 'mic_to_big5', prolang => 'c', prorettype => 'void',
10507  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'mic_to_big5',
10508  probin => '$libdir/euc_tw_and_big5' },
10509{ oid => '4338',
10510  descr => 'internal conversion function for LATIN2 to MULE_INTERNAL',
10511  proname => 'latin2_to_mic', prolang => 'c', prorettype => 'void',
10512  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'latin2_to_mic',
10513  probin => '$libdir/latin2_and_win1250' },
10514{ oid => '4339',
10515  descr => 'internal conversion function for MULE_INTERNAL to LATIN2',
10516  proname => 'mic_to_latin2', prolang => 'c', prorettype => 'void',
10517  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'mic_to_latin2',
10518  probin => '$libdir/latin2_and_win1250' },
10519{ oid => '4340',
10520  descr => 'internal conversion function for WIN1250 to MULE_INTERNAL',
10521  proname => 'win1250_to_mic', prolang => 'c', prorettype => 'void',
10522  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'win1250_to_mic',
10523  probin => '$libdir/latin2_and_win1250' },
10524{ oid => '4341',
10525  descr => 'internal conversion function for MULE_INTERNAL to WIN1250',
10526  proname => 'mic_to_win1250', prolang => 'c', prorettype => 'void',
10527  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'mic_to_win1250',
10528  probin => '$libdir/latin2_and_win1250' },
10529{ oid => '4342',
10530  descr => 'internal conversion function for LATIN2 to WIN1250',
10531  proname => 'latin2_to_win1250', prolang => 'c', prorettype => 'void',
10532  proargtypes => 'int4 int4 cstring internal int4',
10533  prosrc => 'latin2_to_win1250', probin => '$libdir/latin2_and_win1250' },
10534{ oid => '4343',
10535  descr => 'internal conversion function for WIN1250 to LATIN2',
10536  proname => 'win1250_to_latin2', prolang => 'c', prorettype => 'void',
10537  proargtypes => 'int4 int4 cstring internal int4',
10538  prosrc => 'win1250_to_latin2', probin => '$libdir/latin2_and_win1250' },
10539{ oid => '4344',
10540  descr => 'internal conversion function for LATIN1 to MULE_INTERNAL',
10541  proname => 'latin1_to_mic', prolang => 'c', prorettype => 'void',
10542  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'latin1_to_mic',
10543  probin => '$libdir/latin_and_mic' },
10544{ oid => '4345',
10545  descr => 'internal conversion function for MULE_INTERNAL to LATIN1',
10546  proname => 'mic_to_latin1', prolang => 'c', prorettype => 'void',
10547  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'mic_to_latin1',
10548  probin => '$libdir/latin_and_mic' },
10549{ oid => '4346',
10550  descr => 'internal conversion function for LATIN3 to MULE_INTERNAL',
10551  proname => 'latin3_to_mic', prolang => 'c', prorettype => 'void',
10552  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'latin3_to_mic',
10553  probin => '$libdir/latin_and_mic' },
10554{ oid => '4347',
10555  descr => 'internal conversion function for MULE_INTERNAL to LATIN3',
10556  proname => 'mic_to_latin3', prolang => 'c', prorettype => 'void',
10557  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'mic_to_latin3',
10558  probin => '$libdir/latin_and_mic' },
10559{ oid => '4348',
10560  descr => 'internal conversion function for LATIN4 to MULE_INTERNAL',
10561  proname => 'latin4_to_mic', prolang => 'c', prorettype => 'void',
10562  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'latin4_to_mic',
10563  probin => '$libdir/latin_and_mic' },
10564{ oid => '4349',
10565  descr => 'internal conversion function for MULE_INTERNAL to LATIN4',
10566  proname => 'mic_to_latin4', prolang => 'c', prorettype => 'void',
10567  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'mic_to_latin4',
10568  probin => '$libdir/latin_and_mic' },
10569{ oid => '4352', descr => 'internal conversion function for BIG5 to UTF8',
10570  proname => 'big5_to_utf8', prolang => 'c', prorettype => 'void',
10571  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'big5_to_utf8',
10572  probin => '$libdir/utf8_and_big5' },
10573{ oid => '4353', descr => 'internal conversion function for UTF8 to BIG5',
10574  proname => 'utf8_to_big5', prolang => 'c', prorettype => 'void',
10575  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'utf8_to_big5',
10576  probin => '$libdir/utf8_and_big5' },
10577{ oid => '4354', descr => 'internal conversion function for UTF8 to KOI8R',
10578  proname => 'utf8_to_koi8r', prolang => 'c', prorettype => 'void',
10579  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'utf8_to_koi8r',
10580  probin => '$libdir/utf8_and_cyrillic' },
10581{ oid => '4355', descr => 'internal conversion function for KOI8R to UTF8',
10582  proname => 'koi8r_to_utf8', prolang => 'c', prorettype => 'void',
10583  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'koi8r_to_utf8',
10584  probin => '$libdir/utf8_and_cyrillic' },
10585{ oid => '4356', descr => 'internal conversion function for UTF8 to KOI8U',
10586  proname => 'utf8_to_koi8u', prolang => 'c', prorettype => 'void',
10587  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'utf8_to_koi8u',
10588  probin => '$libdir/utf8_and_cyrillic' },
10589{ oid => '4357', descr => 'internal conversion function for KOI8U to UTF8',
10590  proname => 'koi8u_to_utf8', prolang => 'c', prorettype => 'void',
10591  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'koi8u_to_utf8',
10592  probin => '$libdir/utf8_and_cyrillic' },
10593{ oid => '4358', descr => 'internal conversion function for UTF8 to WIN',
10594  proname => 'utf8_to_win', prolang => 'c', prorettype => 'void',
10595  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'utf8_to_win',
10596  probin => '$libdir/utf8_and_win' },
10597{ oid => '4359', descr => 'internal conversion function for WIN to UTF8',
10598  proname => 'win_to_utf8', prolang => 'c', prorettype => 'void',
10599  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'win_to_utf8',
10600  probin => '$libdir/utf8_and_win' },
10601{ oid => '4360', descr => 'internal conversion function for EUC_CN to UTF8',
10602  proname => 'euc_cn_to_utf8', prolang => 'c', prorettype => 'void',
10603  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'euc_cn_to_utf8',
10604  probin => '$libdir/utf8_and_euc_cn' },
10605{ oid => '4361', descr => 'internal conversion function for UTF8 to EUC_CN',
10606  proname => 'utf8_to_euc_cn', prolang => 'c', prorettype => 'void',
10607  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'utf8_to_euc_cn',
10608  probin => '$libdir/utf8_and_euc_cn' },
10609{ oid => '4362', descr => 'internal conversion function for EUC_JP to UTF8',
10610  proname => 'euc_jp_to_utf8', prolang => 'c', prorettype => 'void',
10611  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'euc_jp_to_utf8',
10612  probin => '$libdir/utf8_and_euc_jp' },
10613{ oid => '4363', descr => 'internal conversion function for UTF8 to EUC_JP',
10614  proname => 'utf8_to_euc_jp', prolang => 'c', prorettype => 'void',
10615  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'utf8_to_euc_jp',
10616  probin => '$libdir/utf8_and_euc_jp' },
10617{ oid => '4364', descr => 'internal conversion function for EUC_KR to UTF8',
10618  proname => 'euc_kr_to_utf8', prolang => 'c', prorettype => 'void',
10619  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'euc_kr_to_utf8',
10620  probin => '$libdir/utf8_and_euc_kr' },
10621{ oid => '4365', descr => 'internal conversion function for UTF8 to EUC_KR',
10622  proname => 'utf8_to_euc_kr', prolang => 'c', prorettype => 'void',
10623  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'utf8_to_euc_kr',
10624  probin => '$libdir/utf8_and_euc_kr' },
10625{ oid => '4366', descr => 'internal conversion function for EUC_TW to UTF8',
10626  proname => 'euc_tw_to_utf8', prolang => 'c', prorettype => 'void',
10627  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'euc_tw_to_utf8',
10628  probin => '$libdir/utf8_and_euc_tw' },
10629{ oid => '4367', descr => 'internal conversion function for UTF8 to EUC_TW',
10630  proname => 'utf8_to_euc_tw', prolang => 'c', prorettype => 'void',
10631  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'utf8_to_euc_tw',
10632  probin => '$libdir/utf8_and_euc_tw' },
10633{ oid => '4368', descr => 'internal conversion function for GB18030 to UTF8',
10634  proname => 'gb18030_to_utf8', prolang => 'c', prorettype => 'void',
10635  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'gb18030_to_utf8',
10636  probin => '$libdir/utf8_and_gb18030' },
10637{ oid => '4369', descr => 'internal conversion function for UTF8 to GB18030',
10638  proname => 'utf8_to_gb18030', prolang => 'c', prorettype => 'void',
10639  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'utf8_to_gb18030',
10640  probin => '$libdir/utf8_and_gb18030' },
10641{ oid => '4370', descr => 'internal conversion function for GBK to UTF8',
10642  proname => 'gbk_to_utf8', prolang => 'c', prorettype => 'void',
10643  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'gbk_to_utf8',
10644  probin => '$libdir/utf8_and_gbk' },
10645{ oid => '4371', descr => 'internal conversion function for UTF8 to GBK',
10646  proname => 'utf8_to_gbk', prolang => 'c', prorettype => 'void',
10647  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'utf8_to_gbk',
10648  probin => '$libdir/utf8_and_gbk' },
10649{ oid => '4372',
10650  descr => 'internal conversion function for UTF8 to ISO-8859 2-16',
10651  proname => 'utf8_to_iso8859', prolang => 'c', prorettype => 'void',
10652  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'utf8_to_iso8859',
10653  probin => '$libdir/utf8_and_iso8859' },
10654{ oid => '4373',
10655  descr => 'internal conversion function for ISO-8859 2-16 to UTF8',
10656  proname => 'iso8859_to_utf8', prolang => 'c', prorettype => 'void',
10657  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'iso8859_to_utf8',
10658  probin => '$libdir/utf8_and_iso8859' },
10659{ oid => '4374', descr => 'internal conversion function for LATIN1 to UTF8',
10660  proname => 'iso8859_1_to_utf8', prolang => 'c', prorettype => 'void',
10661  proargtypes => 'int4 int4 cstring internal int4',
10662  prosrc => 'iso8859_1_to_utf8', probin => '$libdir/utf8_and_iso8859_1' },
10663{ oid => '4375', descr => 'internal conversion function for UTF8 to LATIN1',
10664  proname => 'utf8_to_iso8859_1', prolang => 'c', prorettype => 'void',
10665  proargtypes => 'int4 int4 cstring internal int4',
10666  prosrc => 'utf8_to_iso8859_1', probin => '$libdir/utf8_and_iso8859_1' },
10667{ oid => '4376', descr => 'internal conversion function for JOHAB to UTF8',
10668  proname => 'johab_to_utf8', prolang => 'c', prorettype => 'void',
10669  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'johab_to_utf8',
10670  probin => '$libdir/utf8_and_johab' },
10671{ oid => '4377', descr => 'internal conversion function for UTF8 to JOHAB',
10672  proname => 'utf8_to_johab', prolang => 'c', prorettype => 'void',
10673  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'utf8_to_johab',
10674  probin => '$libdir/utf8_and_johab' },
10675{ oid => '4378', descr => 'internal conversion function for SJIS to UTF8',
10676  proname => 'sjis_to_utf8', prolang => 'c', prorettype => 'void',
10677  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'sjis_to_utf8',
10678  probin => '$libdir/utf8_and_sjis' },
10679{ oid => '4379', descr => 'internal conversion function for UTF8 to SJIS',
10680  proname => 'utf8_to_sjis', prolang => 'c', prorettype => 'void',
10681  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'utf8_to_sjis',
10682  probin => '$libdir/utf8_and_sjis' },
10683{ oid => '4380', descr => 'internal conversion function for UHC to UTF8',
10684  proname => 'uhc_to_utf8', prolang => 'c', prorettype => 'void',
10685  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'uhc_to_utf8',
10686  probin => '$libdir/utf8_and_uhc' },
10687{ oid => '4381', descr => 'internal conversion function for UTF8 to UHC',
10688  proname => 'utf8_to_uhc', prolang => 'c', prorettype => 'void',
10689  proargtypes => 'int4 int4 cstring internal int4', prosrc => 'utf8_to_uhc',
10690  probin => '$libdir/utf8_and_uhc' },
10691{ oid => '4382',
10692  descr => 'internal conversion function for EUC_JIS_2004 to UTF8',
10693  proname => 'euc_jis_2004_to_utf8', prolang => 'c', prorettype => 'void',
10694  proargtypes => 'int4 int4 cstring internal int4',
10695  prosrc => 'euc_jis_2004_to_utf8', probin => '$libdir/utf8_and_euc2004' },
10696{ oid => '4383',
10697  descr => 'internal conversion function for UTF8 to EUC_JIS_2004',
10698  proname => 'utf8_to_euc_jis_2004', prolang => 'c', prorettype => 'void',
10699  proargtypes => 'int4 int4 cstring internal int4',
10700  prosrc => 'utf8_to_euc_jis_2004', probin => '$libdir/utf8_and_euc2004' },
10701{ oid => '4384',
10702  descr => 'internal conversion function for SHIFT_JIS_2004 to UTF8',
10703  proname => 'shift_jis_2004_to_utf8', prolang => 'c', prorettype => 'void',
10704  proargtypes => 'int4 int4 cstring internal int4',
10705  prosrc => 'shift_jis_2004_to_utf8', probin => '$libdir/utf8_and_sjis2004' },
10706{ oid => '4385',
10707  descr => 'internal conversion function for UTF8 to SHIFT_JIS_2004',
10708  proname => 'utf8_to_shift_jis_2004', prolang => 'c', prorettype => 'void',
10709  proargtypes => 'int4 int4 cstring internal int4',
10710  prosrc => 'utf8_to_shift_jis_2004', probin => '$libdir/utf8_and_sjis2004' },
10711{ oid => '4386',
10712  descr => 'internal conversion function for EUC_JIS_2004 to SHIFT_JIS_2004',
10713  proname => 'euc_jis_2004_to_shift_jis_2004', prolang => 'c',
10714  prorettype => 'void', proargtypes => 'int4 int4 cstring internal int4',
10715  prosrc => 'euc_jis_2004_to_shift_jis_2004',
10716  probin => '$libdir/euc2004_sjis2004' },
10717{ oid => '4387',
10718  descr => 'internal conversion function for SHIFT_JIS_2004 to EUC_JIS_2004',
10719  proname => 'shift_jis_2004_to_euc_jis_2004', prolang => 'c',
10720  prorettype => 'void', proargtypes => 'int4 int4 cstring internal int4',
10721  prosrc => 'shift_jis_2004_to_euc_jis_2004',
10722  probin => '$libdir/euc2004_sjis2004' },
10723
10724{ oid => '5040',
10725  descr => 'restriction selectivity for generic matching operators',
10726  proname => 'matchingsel', provolatile => 's', prorettype => 'float8',
10727  proargtypes => 'internal oid internal int4', prosrc => 'matchingsel' },
10728{ oid => '5041', descr => 'join selectivity for generic matching operators',
10729  proname => 'matchingjoinsel', provolatile => 's', prorettype => 'float8',
10730  proargtypes => 'internal oid internal int2 internal',
10731  prosrc => 'matchingjoinsel' },
10732
10733# replication/origin.h
10734{ oid => '6003', descr => 'create a replication origin',
10735  proname => 'pg_replication_origin_create', provolatile => 'v',
10736  proparallel => 'u', prorettype => 'oid', proargtypes => 'text',
10737  prosrc => 'pg_replication_origin_create' },
10738
10739{ oid => '6004', descr => 'drop replication origin identified by its name',
10740  proname => 'pg_replication_origin_drop', provolatile => 'v',
10741  proparallel => 'u', prorettype => 'void', proargtypes => 'text',
10742  prosrc => 'pg_replication_origin_drop' },
10743
10744{ oid => '6005',
10745  descr => 'translate the replication origin\'s name to its id',
10746  proname => 'pg_replication_origin_oid', provolatile => 's',
10747  prorettype => 'oid', proargtypes => 'text',
10748  prosrc => 'pg_replication_origin_oid' },
10749
10750{ oid => '6006',
10751  descr => 'configure session to maintain replication progress tracking for the passed in origin',
10752  proname => 'pg_replication_origin_session_setup', provolatile => 'v',
10753  proparallel => 'u', prorettype => 'void', proargtypes => 'text',
10754  prosrc => 'pg_replication_origin_session_setup' },
10755
10756{ oid => '6007', descr => 'teardown configured replication progress tracking',
10757  proname => 'pg_replication_origin_session_reset', provolatile => 'v',
10758  proparallel => 'u', prorettype => 'void', proargtypes => '',
10759  prosrc => 'pg_replication_origin_session_reset' },
10760
10761{ oid => '6008',
10762  descr => 'is a replication origin configured in this session',
10763  proname => 'pg_replication_origin_session_is_setup', provolatile => 'v',
10764  proparallel => 'r', prorettype => 'bool', proargtypes => '',
10765  prosrc => 'pg_replication_origin_session_is_setup' },
10766
10767{ oid => '6009',
10768  descr => 'get the replication progress of the current session',
10769  proname => 'pg_replication_origin_session_progress', provolatile => 'v',
10770  proparallel => 'u', prorettype => 'pg_lsn', proargtypes => 'bool',
10771  prosrc => 'pg_replication_origin_session_progress' },
10772
10773{ oid => '6010', descr => 'setup the transaction\'s origin lsn and timestamp',
10774  proname => 'pg_replication_origin_xact_setup', provolatile => 'v',
10775  proparallel => 'r', prorettype => 'void', proargtypes => 'pg_lsn timestamptz',
10776  prosrc => 'pg_replication_origin_xact_setup' },
10777
10778{ oid => '6011', descr => 'reset the transaction\'s origin lsn and timestamp',
10779  proname => 'pg_replication_origin_xact_reset', provolatile => 'v',
10780  proparallel => 'r', prorettype => 'void', proargtypes => '',
10781  prosrc => 'pg_replication_origin_xact_reset' },
10782
10783{ oid => '6012', descr => 'advance replication origin to specific location',
10784  proname => 'pg_replication_origin_advance', provolatile => 'v',
10785  proparallel => 'u', prorettype => 'void', proargtypes => 'text pg_lsn',
10786  prosrc => 'pg_replication_origin_advance' },
10787
10788{ oid => '6013',
10789  descr => 'get an individual replication origin\'s replication progress',
10790  proname => 'pg_replication_origin_progress', provolatile => 'v',
10791  proparallel => 'u', prorettype => 'pg_lsn', proargtypes => 'text bool',
10792  prosrc => 'pg_replication_origin_progress' },
10793
10794{ oid => '6014', descr => 'get progress for all replication origins',
10795  proname => 'pg_show_replication_origin_status', prorows => '100',
10796  proisstrict => 'f', proretset => 't', provolatile => 'v', proparallel => 'r',
10797  prorettype => 'record', proargtypes => '',
10798  proallargtypes => '{oid,text,pg_lsn,pg_lsn}', proargmodes => '{o,o,o,o}',
10799  proargnames => '{local_id, external_id, remote_lsn, local_lsn}',
10800  prosrc => 'pg_show_replication_origin_status' },
10801
10802# publications
10803{ oid => '6119', descr => 'get OIDs of tables in a publication',
10804  proname => 'pg_get_publication_tables', prorows => '1000', proretset => 't',
10805  provolatile => 's', prorettype => 'oid', proargtypes => 'text',
10806  proallargtypes => '{text,oid}', proargmodes => '{i,o}',
10807  proargnames => '{pubname,relid}', prosrc => 'pg_get_publication_tables' },
10808{ oid => '6121',
10809  descr => 'returns whether a relation can be part of a publication',
10810  proname => 'pg_relation_is_publishable', provolatile => 's',
10811  prorettype => 'bool', proargtypes => 'regclass',
10812  prosrc => 'pg_relation_is_publishable' },
10813
10814# rls
10815{ oid => '3298',
10816  descr => 'row security for current context active on table by table oid',
10817  proname => 'row_security_active', provolatile => 's', prorettype => 'bool',
10818  proargtypes => 'oid', prosrc => 'row_security_active' },
10819{ oid => '3299',
10820  descr => 'row security for current context active on table by table name',
10821  proname => 'row_security_active', provolatile => 's', prorettype => 'bool',
10822  proargtypes => 'text', prosrc => 'row_security_active_name' },
10823
10824# pg_config
10825{ oid => '3400', descr => 'pg_config binary as a function',
10826  proname => 'pg_config', prorows => '23', proretset => 't', provolatile => 's',
10827  proparallel => 'r', prorettype => 'record', proargtypes => '',
10828  proallargtypes => '{text,text}', proargmodes => '{o,o}',
10829  proargnames => '{name,setting}', prosrc => 'pg_config' },
10830
10831# pg_controldata related functions
10832{ oid => '3441',
10833  descr => 'pg_controldata general state information as a function',
10834  proname => 'pg_control_system', provolatile => 'v', prorettype => 'record',
10835  proargtypes => '', proallargtypes => '{int4,int4,int8,timestamptz}',
10836  proargmodes => '{o,o,o,o}',
10837  proargnames => '{pg_control_version,catalog_version_no,system_identifier,pg_control_last_modified}',
10838  prosrc => 'pg_control_system' },
10839
10840{ oid => '3442',
10841  descr => 'pg_controldata checkpoint state information as a function',
10842  proname => 'pg_control_checkpoint', provolatile => 'v',
10843  prorettype => 'record', proargtypes => '',
10844  proallargtypes => '{pg_lsn,pg_lsn,text,int4,int4,bool,text,oid,xid,xid,xid,oid,xid,xid,oid,xid,xid,timestamptz}',
10845  proargmodes => '{o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o}',
10846  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}',
10847  prosrc => 'pg_control_checkpoint' },
10848
10849{ oid => '3443',
10850  descr => 'pg_controldata recovery state information as a function',
10851  proname => 'pg_control_recovery', provolatile => 'v', prorettype => 'record',
10852  proargtypes => '', proallargtypes => '{pg_lsn,int4,pg_lsn,pg_lsn,bool}',
10853  proargmodes => '{o,o,o,o,o}',
10854  proargnames => '{min_recovery_end_lsn,min_recovery_end_timeline,backup_start_lsn,backup_end_lsn,end_of_backup_record_required}',
10855  prosrc => 'pg_control_recovery' },
10856
10857{ oid => '3444',
10858  descr => 'pg_controldata init state information as a function',
10859  proname => 'pg_control_init', provolatile => 'v', prorettype => 'record',
10860  proargtypes => '',
10861  proallargtypes => '{int4,int4,int4,int4,int4,int4,int4,int4,int4,bool,int4}',
10862  proargmodes => '{o,o,o,o,o,o,o,o,o,o,o}',
10863  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}',
10864  prosrc => 'pg_control_init' },
10865
10866# collation management functions
10867{ oid => '3445', descr => 'import collations from operating system',
10868  proname => 'pg_import_system_collations', procost => '100',
10869  provolatile => 'v', proparallel => 'u', prorettype => 'int4',
10870  proargtypes => 'regnamespace', prosrc => 'pg_import_system_collations' },
10871
10872{ oid => '3448',
10873  descr => 'get actual version of collation from operating system',
10874  proname => 'pg_collation_actual_version', procost => '100',
10875  provolatile => 'v', prorettype => 'text', proargtypes => 'oid',
10876  prosrc => 'pg_collation_actual_version' },
10877
10878# system management/monitoring related functions
10879{ oid => '3353', descr => 'list files in the log directory',
10880  proname => 'pg_ls_logdir', procost => '10', prorows => '20', proretset => 't',
10881  provolatile => 'v', prorettype => 'record', proargtypes => '',
10882  proallargtypes => '{text,int8,timestamptz}', proargmodes => '{o,o,o}',
10883  proargnames => '{name,size,modification}', prosrc => 'pg_ls_logdir' },
10884{ oid => '3354', descr => 'list of files in the WAL directory',
10885  proname => 'pg_ls_waldir', procost => '10', prorows => '20', proretset => 't',
10886  provolatile => 'v', prorettype => 'record', proargtypes => '',
10887  proallargtypes => '{text,int8,timestamptz}', proargmodes => '{o,o,o}',
10888  proargnames => '{name,size,modification}', prosrc => 'pg_ls_waldir' },
10889{ oid => '5031', descr => 'list of files in the archive_status directory',
10890  proname => 'pg_ls_archive_statusdir', procost => '10', prorows => '20',
10891  proretset => 't', provolatile => 'v', prorettype => 'record',
10892  proargtypes => '', proallargtypes => '{text,int8,timestamptz}',
10893  proargmodes => '{o,o,o}', proargnames => '{name,size,modification}',
10894  prosrc => 'pg_ls_archive_statusdir' },
10895{ oid => '5029', descr => 'list files in the pgsql_tmp directory',
10896  proname => 'pg_ls_tmpdir', procost => '10', prorows => '20', proretset => 't',
10897  provolatile => 'v', prorettype => 'record', proargtypes => '',
10898  proallargtypes => '{text,int8,timestamptz}', proargmodes => '{o,o,o}',
10899  proargnames => '{name,size,modification}', prosrc => 'pg_ls_tmpdir_noargs' },
10900{ oid => '5030', descr => 'list files in the pgsql_tmp directory',
10901  proname => 'pg_ls_tmpdir', procost => '10', prorows => '20', proretset => 't',
10902  provolatile => 'v', prorettype => 'record', proargtypes => 'oid',
10903  proallargtypes => '{oid,text,int8,timestamptz}', proargmodes => '{i,o,o,o}',
10904  proargnames => '{tablespace,name,size,modification}',
10905  prosrc => 'pg_ls_tmpdir_1arg' },
10906
10907# hash partitioning constraint function
10908{ oid => '5028', descr => 'hash partition CHECK constraint',
10909  proname => 'satisfies_hash_partition', provariadic => 'any',
10910  proisstrict => 'f', prorettype => 'bool', proargtypes => 'oid int4 int4 any',
10911  proargmodes => '{i,i,i,v}', prosrc => 'satisfies_hash_partition' },
10912
10913# information about a partition tree
10914{ oid => '3423', descr => 'view partition tree tables',
10915  proname => 'pg_partition_tree', prorows => '1000', proretset => 't',
10916  provolatile => 'v', prorettype => 'record', proargtypes => 'regclass',
10917  proallargtypes => '{regclass,regclass,regclass,bool,int4}',
10918  proargmodes => '{i,o,o,o,o}',
10919  proargnames => '{rootrelid,relid,parentrelid,isleaf,level}',
10920  prosrc => 'pg_partition_tree' },
10921{ oid => '3425', descr => 'view ancestors of the partition',
10922  proname => 'pg_partition_ancestors', prorows => '10', proretset => 't',
10923  provolatile => 'v', prorettype => 'regclass', proargtypes => 'regclass',
10924  proallargtypes => '{regclass,regclass}', proargmodes => '{i,o}',
10925  proargnames => '{partitionid,relid}', prosrc => 'pg_partition_ancestors' },
10926
10927# function to get the top-most partition root parent
10928{ oid => '3424', descr => 'get top-most partition root parent',
10929  proname => 'pg_partition_root', prorettype => 'regclass',
10930  proargtypes => 'regclass', prosrc => 'pg_partition_root' },
10931
10932{ oid => '4350', descr => 'Unicode normalization',
10933  proname => 'normalize', prorettype => 'text', proargtypes => 'text text',
10934  prosrc => 'unicode_normalize_func' },
10935
10936{ oid => '4351', descr => 'check Unicode normalization',
10937  proname => 'is_normalized', prorettype => 'bool', proargtypes => 'text text',
10938  prosrc => 'unicode_is_normalized' },
10939
10940]
10941