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

Reply via email to