The following bug has been logged online:
Bug reference: 2759
Logged by: Leon Miller-Out
Email address: pg_bugs@leonout.com
PostgreSQL version: 8.1.5
Operating system: CentOS 4.4 x64
Description: \df doesn't show functions with no args
Details:
\df doesn't show functions with no arguments.
This is a documented problem, and appears to have been fixed in April 2005,
so I'm not sure why it's showing up here.
See:
http://groups.google.com/group/pgsql.committers/browse_frm/thread/d28052b7da
9424b0/e6413772fc41324d%23e6413772fc41324d
Running pgsql -E, then \dv outputs:
SELECT n.nspname as "Schema",
p.proname as "Name",
CASE WHEN p.proretset THEN 'setof ' ELSE '' END ||
pg_catalog.format_type(p.prorettype, NULL) as "Result data type",
pg_catalog.oidvectortypes(p.proargtypes) as "Argument data types"
FROM pg_catalog.pg_proc p
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace
WHERE p.prorettype <> 'pg_catalog.cstring'::pg_catalog.regtype
AND p.proargtypes[0] <> 'pg_catalog.cstring'::pg_catalog.regtype
AND NOT p.proisagg
AND pg_catalog.pg_function_is_visible(p.oid)
ORDER BY 1, 2, 3, 4;
The line
AND p.proargtypes[0] <> 'pg_catalog.cstring'::pg_catalog.regtype
Needs to be either
AND (p.proargtypes[0] <> 'pg_catalog.cstring'::pg_catalog.regtype
OR p.proargtypes[0] IS NULL)
or gone completely. See thread at
http://archives.postgresql.org/pgsql-hackers/2005-03/msg01046.php