{ oid => '51', descr => 'I/O',
proname => 'xidout', prorettype => 'cstring', proargtypes => 'xid',
prosrc => 'xidout' },
-{ oid => '9420', descr => 'I/O',
+{ oid => '5070', descr => 'I/O',
proname => 'xid8in', prorettype => 'xid8', proargtypes => 'cstring',
prosrc => 'xid8in' },
-{ oid => '9554', descr => 'I/O',
+{ oid => '5081', descr => 'I/O',
proname => 'xid8out', prorettype => 'cstring', proargtypes => 'xid8',
prosrc => 'xid8out' },
-{ oid => '9555', descr => 'I/O',
+{ oid => '5082', descr => 'I/O',
proname => 'xid8recv', prorettype => 'xid8', proargtypes => 'internal',
prosrc => 'xid8recv' },
-{ oid => '9556', descr => 'I/O',
+{ oid => '5083', descr => 'I/O',
proname => 'xid8send', prorettype => 'bytea', proargtypes => 'xid8',
prosrc => 'xid8send' },
{ oid => '52', descr => 'I/O',
{ oid => '3308',
proname => 'xidneq', proleakproof => 't', prorettype => 'bool',
proargtypes => 'xid xid', prosrc => 'xidneq' },
-{ oid => '9557',
+{ oid => '5084',
proname => 'xid8eq', proleakproof => 't', prorettype => 'bool',
proargtypes => 'xid8 xid8', prosrc => 'xid8eq' },
-{ oid => '9558',
+{ oid => '5085',
proname => 'xid8ne', proleakproof => 't', prorettype => 'bool',
proargtypes => 'xid8 xid8', prosrc => 'xid8ne' },
-{ oid => '8295',
+{ oid => '5034',
proname => 'xid8lt', proleakproof => 't', prorettype => 'bool',
proargtypes => 'xid8 xid8', prosrc => 'xid8lt' },
-{ oid => '8296',
+{ oid => '5035',
proname => 'xid8gt', proleakproof => 't', prorettype => 'bool',
proargtypes => 'xid8 xid8', prosrc => 'xid8gt' },
-{ oid => '8297',
+{ oid => '5036',
proname => 'xid8le', proleakproof => 't', prorettype => 'bool',
proargtypes => 'xid8 xid8', prosrc => 'xid8le' },
-{ oid => '8298',
+{ oid => '5037',
proname => 'xid8ge', proleakproof => 't', prorettype => 'bool',
proargtypes => 'xid8 xid8', prosrc => 'xid8ge' },
-{ oid => '9912', descr => 'less-equal-greater',
+{ oid => '5096', descr => 'less-equal-greater',
proname => 'xid8cmp', proleakproof => 't', prorettype => 'int4',
proargtypes => 'xid8 xid8', prosrc => 'xid8cmp' },
-{ oid => '9421', descr => 'convert xid8 to xid',
+{ oid => '5071', descr => 'convert xid8 to xid',
proname => 'xid', prorettype => 'xid', proargtypes => 'xid8',
prosrc => 'xid8toxid' },
{ oid => '69',
{ oid => '3255', descr => 'sort support',
proname => 'bttextsortsupport', prorettype => 'void',
proargtypes => 'internal', prosrc => 'bttextsortsupport' },
-{ oid => '8505', descr => 'equal image',
+{ oid => '5050', descr => 'equal image',
proname => 'btvarstrequalimage', prorettype => 'bool', proargtypes => 'oid',
prosrc => 'btvarstrequalimage' },
{ oid => '377', descr => 'less-equal-greater',
proname => 'mod', prorettype => 'int8', proargtypes => 'int8 int8',
prosrc => 'int8mod' },
-{ oid => '8463', descr => 'greatest common divisor',
+{ oid => '5044', descr => 'greatest common divisor',
proname => 'gcd', prorettype => 'int4', proargtypes => 'int4 int4',
prosrc => 'int4gcd' },
-{ oid => '8464', descr => 'greatest common divisor',
+{ oid => '5045', descr => 'greatest common divisor',
proname => 'gcd', prorettype => 'int8', proargtypes => 'int8 int8',
prosrc => 'int8gcd' },
-{ oid => '8465', descr => 'least common multiple',
+{ oid => '5046', descr => 'least common multiple',
proname => 'lcm', prorettype => 'int4', proargtypes => 'int4 int4',
prosrc => 'int4lcm' },
-{ oid => '8466', descr => 'least common multiple',
+{ oid => '5047', descr => 'least common multiple',
proname => 'lcm', prorettype => 'int8', proargtypes => 'int8 int8',
prosrc => 'int8lcm' },
{ oid => '3551',
proname => 'network_overlap', prorettype => 'bool',
proargtypes => 'inet inet', prosrc => 'network_overlap' },
-{ oid => '8190', descr => 'sort support',
+{ oid => '5033', descr => 'sort support',
proname => 'network_sortsupport', prorettype => 'void',
proargtypes => 'internal', prosrc => 'network_sortsupport' },
{ oid => '1729',
proname => 'numeric_mod', prorettype => 'numeric',
proargtypes => 'numeric numeric', prosrc => 'numeric_mod' },
-{ oid => '8467', descr => 'greatest common divisor',
+{ oid => '5048', descr => 'greatest common divisor',
proname => 'gcd', prorettype => 'numeric', proargtypes => 'numeric numeric',
prosrc => 'numeric_gcd' },
-{ oid => '8468', descr => 'least common multiple',
+{ oid => '5049', descr => 'least common multiple',
proname => 'lcm', prorettype => 'numeric', proargtypes => 'numeric numeric',
prosrc => 'numeric_lcm' },
{ oid => '1730', descr => 'square root',
{ oid => '3281', descr => 'number of decimal digits in the fractional part',
proname => 'scale', prorettype => 'int4', proargtypes => 'numeric',
prosrc => 'numeric_scale' },
-{ oid => '8389', descr => 'minimum scale needed to represent the value',
+{ oid => '5042', descr => 'minimum scale needed to represent the value',
proname => 'min_scale', prorettype => 'int4', proargtypes => 'numeric',
prosrc => 'numeric_min_scale' },
-{ oid => '8390',
+{ oid => '5043',
descr => 'numeric with minimum scale needed to represent the value',
proname => 'trim_scale', prorettype => 'numeric', proargtypes => 'numeric',
prosrc => 'numeric_trim_scale' },
proname => 'pg_stat_get_mod_since_analyze', provolatile => 's',
proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
prosrc => 'pg_stat_get_mod_since_analyze' },
-{ oid => '8872',
+{ oid => '5053',
descr => 'statistics: number of tuples inserted since last vacuum',
proname => 'pg_stat_get_ins_since_vacuum', provolatile => 's',
proparallel => 'r', prorettype => 'int8', proargtypes => 'oid',
proname => 'pg_stat_get_buf_alloc', provolatile => 's', proparallel => 'r',
prorettype => 'int8', proargtypes => '', prosrc => 'pg_stat_get_buf_alloc' },
-{ oid => '2306',
- descr => 'statistics: information about SLRU caches',
+{ oid => '2306', descr => 'statistics: information about SLRU caches',
proname => 'pg_stat_get_slru', prorows => '100', proisstrict => 'f',
proretset => 't', provolatile => 's', proparallel => 'r',
prorettype => 'record', proargtypes => '',
prosrc => 'pg_stat_reset_single_function_counters' },
{ oid => '2307',
descr => 'statistics: reset collected statistics for a single SLRU',
- proname => 'pg_stat_reset_slru', provolatile => 'v', proisstrict => 'f',
- prorettype => 'void', proargtypes => 'text',
- prosrc => 'pg_stat_reset_slru' },
+ proname => 'pg_stat_reset_slru', proisstrict => 'f', provolatile => 'v',
+ prorettype => 'void', proargtypes => 'text', prosrc => 'pg_stat_reset_slru' },
{ oid => '3163', descr => 'current trigger depth',
proname => 'pg_trigger_depth', provolatile => 's', proparallel => 'r',
{ oid => '268', descr => 'I/O',
proname => 'table_am_handler_out', prorettype => 'cstring',
proargtypes => 'table_am_handler', prosrc => 'table_am_handler_out' },
-{ oid => '9559', descr => 'I/O',
+{ oid => '5086', descr => 'I/O',
proname => 'anycompatible_in', prorettype => 'anycompatible',
proargtypes => 'cstring', prosrc => 'anycompatible_in' },
-{ oid => '9560', descr => 'I/O',
+{ oid => '5087', descr => 'I/O',
proname => 'anycompatible_out', prorettype => 'cstring',
proargtypes => 'anycompatible', prosrc => 'anycompatible_out' },
-{ oid => '9561', descr => 'I/O',
+{ oid => '5088', descr => 'I/O',
proname => 'anycompatiblearray_in', prorettype => 'anycompatiblearray',
proargtypes => 'cstring', prosrc => 'anycompatiblearray_in' },
-{ oid => '9562', descr => 'I/O',
+{ oid => '5089', descr => 'I/O',
proname => 'anycompatiblearray_out', provolatile => 's',
prorettype => 'cstring', proargtypes => 'anycompatiblearray',
prosrc => 'anycompatiblearray_out' },
-{ oid => '9563', descr => 'I/O',
+{ oid => '5090', descr => 'I/O',
proname => 'anycompatiblearray_recv', provolatile => 's',
prorettype => 'anycompatiblearray', proargtypes => 'internal',
prosrc => 'anycompatiblearray_recv' },
-{ oid => '9564', descr => 'I/O',
+{ oid => '5091', descr => 'I/O',
proname => 'anycompatiblearray_send', provolatile => 's',
prorettype => 'bytea', proargtypes => 'anycompatiblearray',
prosrc => 'anycompatiblearray_send' },
-{ oid => '9565', descr => 'I/O',
+{ oid => '5092', descr => 'I/O',
proname => 'anycompatiblenonarray_in', prorettype => 'anycompatiblenonarray',
proargtypes => 'cstring', prosrc => 'anycompatiblenonarray_in' },
-{ oid => '9566', descr => 'I/O',
+{ oid => '5093', descr => 'I/O',
proname => 'anycompatiblenonarray_out', prorettype => 'cstring',
proargtypes => 'anycompatiblenonarray',
prosrc => 'anycompatiblenonarray_out' },
-{ oid => '9567', descr => 'I/O',
+{ oid => '5094', descr => 'I/O',
proname => 'anycompatiblerange_in', provolatile => 's',
prorettype => 'anycompatiblerange', proargtypes => 'cstring oid int4',
prosrc => 'anycompatiblerange_in' },
-{ oid => '9568', descr => 'I/O',
+{ oid => '5095', descr => 'I/O',
proname => 'anycompatiblerange_out', provolatile => 's',
prorettype => 'cstring', proargtypes => 'anycompatiblerange',
prosrc => 'anycompatiblerange_out' },
prosrc => 'pg_notification_queue_usage' },
# shared memory usage
-{ oid => '8613', descr => 'allocations from the main shared memory segment',
+{ oid => '5052', descr => 'allocations from the main shared memory segment',
proname => 'pg_get_shmem_allocations', prorows => '50', proretset => 't',
provolatile => 'v', prorettype => 'record', proargtypes => '',
proallargtypes => '{text,int8,int8,int8}', proargmodes => '{o,o,o,o}',
proargtypes => 'internal gtsvector int4 oid internal',
prosrc => 'gtsvector_consistent_oldsig' },
{ oid => '3434', descr => 'GiST tsvector support',
- proname => 'gtsvector_options', prorettype => 'void', proisstrict => 'f',
+ proname => 'gtsvector_options', proisstrict => 'f', prorettype => 'void',
proargtypes => 'internal', prosrc => 'gtsvector_options' },
{ oid => '3656', descr => 'GIN tsvector support',
{ oid => '3304',
proname => 'jsonb_delete_path', prorettype => 'jsonb',
proargtypes => 'jsonb _text', prosrc => 'jsonb_delete_path' },
-{ oid => '8945', descr => 'Set part of a jsonb, handle NULL value',
+{ oid => '5054', descr => 'Set part of a jsonb, handle NULL value',
proname => 'jsonb_set_lax', proisstrict => 'f', prorettype => 'jsonb',
proargtypes => 'jsonb _text jsonb bool text', prosrc => 'jsonb_set_lax' },
{ oid => '3305', descr => 'Set part of a jsonb',
proargtypes => 'int8', prosrc => 'pg_xact_status' },
# pg_snapshot functions
-{ oid => '9247', descr => 'I/O',
+{ oid => '5055', descr => 'I/O',
proname => 'pg_snapshot_in', prorettype => 'pg_snapshot',
proargtypes => 'cstring', prosrc => 'pg_snapshot_in' },
-{ oid => '9248', descr => 'I/O',
+{ oid => '5056', descr => 'I/O',
proname => 'pg_snapshot_out', prorettype => 'cstring',
proargtypes => 'pg_snapshot', prosrc => 'pg_snapshot_out' },
-{ oid => '9249', descr => 'I/O',
+{ oid => '5057', descr => 'I/O',
proname => 'pg_snapshot_recv', prorettype => 'pg_snapshot',
proargtypes => 'internal', prosrc => 'pg_snapshot_recv' },
-{ oid => '9250', descr => 'I/O',
+{ oid => '5058', descr => 'I/O',
proname => 'pg_snapshot_send', prorettype => 'bytea',
proargtypes => 'pg_snapshot', prosrc => 'pg_snapshot_send' },
-{ oid => '9253', descr => 'get current snapshot',
+{ oid => '5061', descr => 'get current snapshot',
proname => 'pg_current_snapshot', provolatile => 's',
prorettype => 'pg_snapshot', proargtypes => '',
prosrc => 'pg_current_snapshot' },
-{ oid => '9254', descr => 'get xmin of snapshot',
+{ oid => '5062', descr => 'get xmin of snapshot',
proname => 'pg_snapshot_xmin', prorettype => 'xid8',
proargtypes => 'pg_snapshot', prosrc => 'pg_snapshot_xmin' },
-{ oid => '9255', descr => 'get xmax of snapshot',
+{ oid => '5063', descr => 'get xmax of snapshot',
proname => 'pg_snapshot_xmax', prorettype => 'xid8',
proargtypes => 'pg_snapshot', prosrc => 'pg_snapshot_xmax' },
-{ oid => '9256', descr => 'get set of in-progress transactions in snapshot',
+{ oid => '5064', descr => 'get set of in-progress transactions in snapshot',
proname => 'pg_snapshot_xip', prorows => '50', proretset => 't',
prorettype => 'xid8', proargtypes => 'pg_snapshot',
prosrc => 'pg_snapshot_xip' },
-{ oid => '9257', descr => 'is xid8 visible in snapshot?',
+{ oid => '5065', descr => 'is xid8 visible in snapshot?',
proname => 'pg_visible_in_snapshot', prorettype => 'bool',
proargtypes => 'xid8 pg_snapshot', prosrc => 'pg_visible_in_snapshot' },
# transaction ID and status functions
-{ oid => '9251', descr => 'get current transaction ID',
+{ oid => '5059', descr => 'get current transaction ID',
proname => 'pg_current_xact_id', provolatile => 's', proparallel => 'u',
prorettype => 'xid8', proargtypes => '', prosrc => 'pg_current_xact_id' },
-{ oid => '9252', descr => 'get current transaction ID',
- proname => 'pg_current_xact_id_if_assigned', provolatile => 's', proparallel => 'u',
- prorettype => 'xid8', proargtypes => '',
+{ oid => '5060', descr => 'get current transaction ID',
+ proname => 'pg_current_xact_id_if_assigned', provolatile => 's',
+ proparallel => 'u', prorettype => 'xid8', proargtypes => '',
prosrc => 'pg_current_xact_id_if_assigned' },
-{ oid => '9258', descr => 'commit status of transaction',
+{ oid => '5066', descr => 'commit status of transaction',
proname => 'pg_xact_status', provolatile => 'v', prorettype => 'text',
proargtypes => 'xid8', prosrc => 'pg_xact_status' },
{ oid => '3187', descr => 'less-equal-greater based on byte images',
proname => 'btrecordimagecmp', prorettype => 'int4',
proargtypes => 'record record', prosrc => 'btrecordimagecmp' },
-{ oid => '8506', descr => 'equal image',
+{ oid => '5051', descr => 'equal image',
proname => 'btequalimage', prorettype => 'bool', proargtypes => 'oid',
prosrc => 'btequalimage' },
prosrc => 'shift_jis_2004_to_euc_jis_2004',
probin => '$libdir/euc2004_sjis2004' },
-{ oid => '8387',
+{ oid => '5040',
descr => 'restriction selectivity for generic matching operators',
proname => 'matchingsel', provolatile => 's', prorettype => 'float8',
proargtypes => 'internal oid internal int4', prosrc => 'matchingsel' },
-{ oid => '8388', descr => 'join selectivity for generic matching operators',
+{ oid => '5041', descr => 'join selectivity for generic matching operators',
proname => 'matchingjoinsel', provolatile => 's', prorettype => 'float8',
proargtypes => 'internal oid internal int2 internal',
prosrc => 'matchingjoinsel' },
proargtypes => 'regclass', prosrc => 'pg_partition_root' },
{ oid => '4350', descr => 'Unicode normalization',
- proname => 'normalize', prorettype => 'text',
- proargtypes => 'text text', prosrc => 'unicode_normalize_func' },
+ proname => 'normalize', prorettype => 'text', proargtypes => 'text text',
+ prosrc => 'unicode_normalize_func' },
{ oid => '4351', descr => 'check Unicode normalization',
- proname => 'is_normalized', prorettype => 'bool',
- proargtypes => 'text text', prosrc => 'unicode_is_normalized' },
+ proname => 'is_normalized', prorettype => 'bool', proargtypes => 'text text',
+ prosrc => 'unicode_is_normalized' },
]
-- or when new polymorphic built-in functions are added!
-- Note: ignore aggregate functions here, since they all point to the same
-- dummy built-in function. Likewise, ignore range constructor functions.
-SELECT DISTINCT p1.prorettype, p2.prorettype
+SELECT DISTINCT p1.prorettype::regtype, p2.prorettype::regtype
FROM pg_proc AS p1, pg_proc AS p2
WHERE p1.oid != p2.oid AND
p1.prosrc = p2.prosrc AND
p2.prosrc NOT LIKE E'range\\_constructor_' AND
(p1.prorettype < p2.prorettype)
ORDER BY 1, 2;
- prorettype | prorettype
-------------+------------
- 20 | 9419
- 25 | 1043
- 1114 | 1184
- 2970 | 8355
+ prorettype | prorettype
+-----------------------------+--------------------------
+ bigint | xid8
+ text | character varying
+ timestamp without time zone | timestamp with time zone
+ txid_snapshot | pg_snapshot
(4 rows)
-SELECT DISTINCT p1.proargtypes[0], p2.proargtypes[0]
+SELECT DISTINCT p1.proargtypes[0]::regtype, p2.proargtypes[0]::regtype
FROM pg_proc AS p1, pg_proc AS p2
WHERE p1.oid != p2.oid AND
p1.prosrc = p2.prosrc AND
p2.prosrc NOT LIKE E'range\\_constructor_' AND
(p1.proargtypes[0] < p2.proargtypes[0])
ORDER BY 1, 2;
- proargtypes | proargtypes
--------------+-------------
- 20 | 9419
- 25 | 1042
- 25 | 1043
- 1114 | 1184
- 1560 | 1562
- 2970 | 8355
+ proargtypes | proargtypes
+-----------------------------+--------------------------
+ bigint | xid8
+ text | character
+ text | character varying
+ timestamp without time zone | timestamp with time zone
+ bit | bit varying
+ txid_snapshot | pg_snapshot
(6 rows)
-SELECT DISTINCT p1.proargtypes[1], p2.proargtypes[1]
+SELECT DISTINCT p1.proargtypes[1]::regtype, p2.proargtypes[1]::regtype
FROM pg_proc AS p1, pg_proc AS p2
WHERE p1.oid != p2.oid AND
p1.prosrc = p2.prosrc AND
p2.prosrc NOT LIKE E'range\\_constructor_' AND
(p1.proargtypes[1] < p2.proargtypes[1])
ORDER BY 1, 2;
- proargtypes | proargtypes
--------------+-------------
- 23 | 28
- 1114 | 1184
- 1560 | 1562
- 2970 | 8355
+ proargtypes | proargtypes
+-----------------------------+--------------------------
+ integer | xid
+ timestamp without time zone | timestamp with time zone
+ bit | bit varying
+ txid_snapshot | pg_snapshot
(4 rows)
-SELECT DISTINCT p1.proargtypes[2], p2.proargtypes[2]
+SELECT DISTINCT p1.proargtypes[2]::regtype, p2.proargtypes[2]::regtype
FROM pg_proc AS p1, pg_proc AS p2
WHERE p1.oid != p2.oid AND
p1.prosrc = p2.prosrc AND
p1.prokind != 'a' AND p2.prokind != 'a' AND
(p1.proargtypes[2] < p2.proargtypes[2])
ORDER BY 1, 2;
- proargtypes | proargtypes
--------------+-------------
- 1114 | 1184
+ proargtypes | proargtypes
+-----------------------------+--------------------------
+ timestamp without time zone | timestamp with time zone
(1 row)
-SELECT DISTINCT p1.proargtypes[3], p2.proargtypes[3]
+SELECT DISTINCT p1.proargtypes[3]::regtype, p2.proargtypes[3]::regtype
FROM pg_proc AS p1, pg_proc AS p2
WHERE p1.oid != p2.oid AND
p1.prosrc = p2.prosrc AND
p1.prokind != 'a' AND p2.prokind != 'a' AND
(p1.proargtypes[3] < p2.proargtypes[3])
ORDER BY 1, 2;
- proargtypes | proargtypes
--------------+-------------
- 1114 | 1184
+ proargtypes | proargtypes
+-----------------------------+--------------------------
+ timestamp without time zone | timestamp with time zone
(1 row)
-SELECT DISTINCT p1.proargtypes[4], p2.proargtypes[4]
+SELECT DISTINCT p1.proargtypes[4]::regtype, p2.proargtypes[4]::regtype
FROM pg_proc AS p1, pg_proc AS p2
WHERE p1.oid != p2.oid AND
p1.prosrc = p2.prosrc AND
-------------+-------------
(0 rows)
-SELECT DISTINCT p1.proargtypes[5], p2.proargtypes[5]
+SELECT DISTINCT p1.proargtypes[5]::regtype, p2.proargtypes[5]::regtype
FROM pg_proc AS p1, pg_proc AS p2
WHERE p1.oid != p2.oid AND
p1.prosrc = p2.prosrc AND
-------------+-------------
(0 rows)
-SELECT DISTINCT p1.proargtypes[6], p2.proargtypes[6]
+SELECT DISTINCT p1.proargtypes[6]::regtype, p2.proargtypes[6]::regtype
FROM pg_proc AS p1, pg_proc AS p2
WHERE p1.oid != p2.oid AND
p1.prosrc = p2.prosrc AND
-------------+-------------
(0 rows)
-SELECT DISTINCT p1.proargtypes[7], p2.proargtypes[7]
+SELECT DISTINCT p1.proargtypes[7]::regtype, p2.proargtypes[7]::regtype
FROM pg_proc AS p1, pg_proc AS p2
WHERE p1.oid != p2.oid AND
p1.prosrc = p2.prosrc AND
ORDER BY 2;
oid | proname
------+--------------------------
- 9559 | anycompatible_in
- 9561 | anycompatiblearray_in
- 9563 | anycompatiblearray_recv
- 9565 | anycompatiblenonarray_in
+ 5086 | anycompatible_in
+ 5088 | anycompatiblearray_in
+ 5090 | anycompatiblearray_recv
+ 5092 | anycompatiblenonarray_in
(4 rows)
SELECT p1.oid, p1.proname
ORDER BY 2;
oid | proname
------+-----------------------
- 9567 | anycompatiblerange_in
+ 5094 | anycompatiblerange_in
(1 row)
-- Look for functions that accept cstring and are neither datatype input