On Sun, Jul 16, 2006 at 12:21:12AM -0700, Neil Conway wrote: > On Sat, 2006-07-15 at 23:16 -0700, David Fetter wrote: > > Anyhow, please find enclosed the context-style diff. > > How carefully did you test this?
Not enough. Here's the latest. > postgres=# \df abc > List of functions > Schema | Name | Result data type | Argument data types > --------+------+------------------+--------------------- > public | abc | integer | a integer,b integer > (1 row) > > (The argument list should be separated by both a comma and whitespace.) > > postgres=# create or replace function xyz(inout a int, inout int) > returns record as 'select (1, 2);' language sql; > CREATE FUNCTION > postgres=# \df xyz > List of functions > Schema | Name | Result data type | Argument data types > --------+------+------------------+---------------------------------- > public | xyz | record | INOUT a integer, INOUT integer > (1 row) These are now fixed. > (Spurious whitespace for the unnamed INOUT parameter.) > > You need to schema-qualify references to builtin functions, to avoid > accidentally using functions of the same name that appear earlier in > the user's search path. I don't understand what you mean here. The schema name comes with both versions of \df, just as it did before. Cheers, D -- David Fetter <[EMAIL PROTECTED]> http://fetter.org/ phone: +1 415 235 3778 AIM: dfetter666 Skype: davidfetter Remember to vote!
Index: src/bin/psql/describe.c =================================================================== RCS file: /projects/cvsroot/pgsql/src/bin/psql/describe.c,v retrieving revision 1.140 diff -c -r1.140 describe.c *** src/bin/psql/describe.c 14 Jun 2006 16:49:02 -0000 1.140 --- src/bin/psql/describe.c 16 Jul 2006 07:59:48 -0000 *************** *** 170,177 **** "SELECT n.nspname as \"%s\",\n" " p.proname as \"%s\",\n" " CASE WHEN p.proretset THEN 'setof ' ELSE '' END ||\n" ! " pg_catalog.format_type(p.prorettype, NULL) as \"%s\",\n" ! " pg_catalog.oidvectortypes(p.proargtypes) as \"%s\"", _("Schema"), _("Name"), _("Result data type"), _("Argument data types")); --- 170,204 ---- "SELECT n.nspname as \"%s\",\n" " p.proname as \"%s\",\n" " CASE WHEN p.proretset THEN 'setof ' ELSE '' END ||\n" ! " pg_catalog.format_type(p.prorettype, NULL) as \"%s\",\n" ! " CASE WHEN proallargtypes IS NOT NULL THEN\n" ! " array_to_string(ARRAY(\n" ! " SELECT\n" ! " CASE\n" ! " WHEN p.proargmodes[s.i] = 'i' THEN ''\n" ! " WHEN p.proargmodes[s.i] = 'o' THEN 'OUT '\n" ! " WHEN p.proargmodes[s.i] = 'b' THEN 'INOUT '\n" ! " END ||\n" ! " CASE\n" ! " WHEN p.proargnames[s.i] = '' OR p.proargnames[s.i] IS NULL THEN ''\n" ! " ELSE p.proargnames[s.i] || ' ' \n" ! " END ||\n" ! " format_type(p.proallargtypes[s.i],-1)\n" ! " FROM\n" ! " generate_series(1,array_upper(p.proallargtypes,1)) AS s(i)\n" ! " ), ', ')\n" ! " ELSE\n" ! " array_to_string(ARRAY(\n" ! " SELECT\n" ! " CASE\n" ! " WHEN p.proargnames[s.i+1] = '' OR p.proargnames[s.i+1] IS NULL THEN ''\n" ! " ELSE p.proargnames[s.i+1] || ' '\n" ! " END ||\n" ! " format_type(p.proargtypes[s.i],-1)\n" ! " FROM\n" ! " generate_series(0,array_upper(p.proargtypes,1)) AS s(i)\n" ! " ), ', ')\n" ! " END AS \"%s\"", _("Schema"), _("Name"), _("Result data type"), _("Argument data types"));
---------------------------(end of broadcast)--------------------------- TIP 3: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq