Re: [HACKERS] HEAD \df doesn't show functions with no arguments - Mailing list pgsql-patches
From | Bruce Momjian |
---|---|
Subject | Re: [HACKERS] HEAD \df doesn't show functions with no arguments |
Date | |
Msg-id | 200504010529.j315Tvv09698@candle.pha.pa.us Whole thread Raw |
List | pgsql-patches |
I have applied the following attached patch to CVS to fix the \df display problem you reported. We might remove the test it at some point but at least now it works as in previous releases. --------------------------------------------------------------------------- Michael Fuhr wrote: > On Thu, Mar 31, 2005 at 01:06:39AM -0500, Tom Lane wrote: > > Michael Fuhr <mike@fuhr.org> writes: > > > The problem appears to be that proargtypes[0] is now NULL instead > > > of 0. Here's a simplified version of the \df query: > > > > > SELECT proname > > > FROM pg_catalog.pg_proc p > > > WHERE p.proargtypes[0] <> 'pg_catalog.cstring'::pg_catalog.regtype > > > AND p.proname ~ '^foo$'; > > > > We could fix it by changing <> to IS DISTINCT FROM ... but I've never > > been very happy with the idea that \df tries to suppress I/O functions > > anyway. How do you feel about removing the cstring test altogether? > > Wouldn't bother me -- I'd rather see what's there and make the > "uninteresting" call myself, if that's the only reason for not > showing the I/O functions. It's not like they'd overwhelm the > output. > > CREATE DATABASE foo TEMPLATE = template0; > \c foo > > SELECT count(*) FROM pg_proc WHERE proargtypes[0] = 'cstring'::regtype; > count > ------- > 63 > (1 row) > > SELECT count(*) FROM pg_proc; > count > ------- > 1760 > (1 row) > > -- > Michael Fuhr > http://www.fuhr.org/~mfuhr/ > > ---------------------------(end of broadcast)--------------------------- > TIP 6: Have you searched our list archives? > > http://archives.postgresql.org > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073 Index: src/bin/psql/describe.c =================================================================== RCS file: /cvsroot/pgsql/src/bin/psql/describe.c,v retrieving revision 1.113 diff -c -c -r1.113 describe.c *** src/bin/psql/describe.c 16 Mar 2005 23:52:18 -0000 1.113 --- src/bin/psql/describe.c 1 Apr 2005 03:43:20 -0000 *************** *** 201,207 **** */ appendPQExpBuffer(&buf, "WHERE p.prorettype <> 'pg_catalog.cstring'::pg_catalog.regtype\n" ! " AND p.proargtypes[0] <> 'pg_catalog.cstring'::pg_catalog.regtype\n" " AND NOT p.proisagg\n"); processNamePattern(&buf, pattern, true, false, --- 201,208 ---- */ appendPQExpBuffer(&buf, "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"); processNamePattern(&buf, pattern, true, false, *************** *** 491,497 **** " 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] <> 'pg_catalog.cstring'::pg_catalog.regtype\n" " AND NOT p.proisagg\n", _("function")); processNamePattern(&buf, pattern, true, false, --- 492,499 ---- " 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", _("function")); processNamePattern(&buf, pattern, true, false,
pgsql-patches by date: