diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml index 05c35904efead93dde3eec745fe22e308f6462c5..c5c7fc7e81b8a6cb531cd88d4d629640d2b9742d 100644 --- a/doc/src/sgml/ref/psql-ref.sgml +++ b/doc/src/sgml/ref/psql-ref.sgml @@ -1,5 +1,5 @@ <!-- -$PostgreSQL: pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.222 2009/04/04 00:39:14 tgl Exp $ +$PostgreSQL: pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.223 2009/04/08 22:29:30 tgl Exp $ PostgreSQL documentation --> @@ -1055,16 +1055,10 @@ testdb=> <note> <para> - To look up functions taking argument or returning values of a specific + To look up functions taking arguments or returning values of a specific type, use your pager's search capability to scroll through the <literal>\df</> output. </para> - - <para> - To reduce clutter, <literal>\df</> does not show data type I/O - functions. This is implemented by ignoring functions that accept - or return type <type>cstring</>. - </para> </note> </listitem> diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c index df59999d200c366a47447293d620ade68ca2f76d..83858f327d733426c040d40a6a393a31d3667f82 100644 --- a/src/bin/psql/describe.c +++ b/src/bin/psql/describe.c @@ -8,7 +8,7 @@ * * Copyright (c) 2000-2009, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.207 2009/04/04 00:44:30 tgl Exp $ + * $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.208 2009/04/08 22:29:30 tgl Exp $ */ #include "postgres_fe.h" @@ -274,13 +274,7 @@ describeFunctions(const char *pattern, bool verbose, bool showSystem) appendPQExpBuffer(&buf, " LEFT JOIN pg_catalog.pg_language l ON l.oid = p.prolang\n"); - /* - * we skip in/out funcs by excluding functions that take or return cstring - */ - appendPQExpBuffer(&buf, - "WHERE p.prorettype <> 'pg_catalog.cstring'::pg_catalog.regtype\n" - " AND p.proargtypes[0] IS DISTINCT FROM 'pg_catalog.cstring'::pg_catalog.regtype\n" - " AND NOT p.proisagg\n"); + appendPQExpBuffer(&buf, "WHERE NOT p.proisagg\n"); if (!showSystem && !pattern) appendPQExpBuffer(&buf, " AND n.nspname <> 'pg_catalog'\n" @@ -643,7 +637,7 @@ objectDescription(const char *pattern, bool showSystem) "n.nspname", "p.proname", NULL, "pg_catalog.pg_function_is_visible(p.oid)"); - /* Function descriptions (except in/outs for datatypes) */ + /* Function descriptions */ appendPQExpBuffer(&buf, "UNION ALL\n" " SELECT p.oid as oid, p.tableoid as tableoid,\n" @@ -652,11 +646,7 @@ objectDescription(const char *pattern, bool showSystem) " CAST('%s' AS pg_catalog.text) as object\n" " FROM pg_catalog.pg_proc p\n" " LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace\n" - - " WHERE p.prorettype <> 'pg_catalog.cstring'::pg_catalog.regtype\n" - " AND (p.proargtypes[0] IS NULL\n" - " OR p.proargtypes[0] <> 'pg_catalog.cstring'::pg_catalog.regtype)\n" - " AND NOT p.proisagg\n", + " WHERE NOT p.proisagg\n", gettext_noop("function")); if (!showSystem && !pattern)