Thread: BUG #2759: \df doesn't show functions with no args

BUG #2759: \df doesn't show functions with no args

From
"Leon Miller-Out"
Date:
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

Re: BUG #2759: \df doesn't show functions with no args

From
Bruce Momjian
Date:
I am wondering if you are using an old psql with your 8.1.X server.
I see in 8.2.X this output from psql \df:

   pg_catalog | now                                | timestamp with time zone    |

and I see similar code in 8.1.X.  Do you see "now" showing up?

---------------------------------------------------------------------------

Leon Miller-Out wrote:
>
> 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
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: Have you checked our extensive FAQ?
>
>                http://www.postgresql.org/docs/faq

--
  Bruce Momjian   bruce@momjian.us
  EnterpriseDB    http://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +

Re: BUG #2759: \df doesn't show functions with no args

From
"Leon Miller-Out"
Date:
Bruce, you're right... I was using an old client. I wasn't aware that
the client translated the \d commands into SQL. Thanks for clearing
this up!

Leon

On 11/20/06, Bruce Momjian <bruce@momjian.us> wrote:
>
> I am wondering if you are using an old psql with your 8.1.X server.
> I see in 8.2.X this output from psql \df:
>
>    pg_catalog | now                                | timestamp with time zone    |
>
> and I see similar code in 8.1.X.  Do you see "now" showing up?
>
> ---------------------------------------------------------------------------
>
> Leon Miller-Out wrote:
> >
> > 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
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 3: Have you checked our extensive FAQ?
> >
> >                http://www.postgresql.org/docs/faq
>
> --
>   Bruce Momjian   bruce@momjian.us
>   EnterpriseDB    http://www.enterprisedb.com
>
>   + If your life is a hard drive, Christ can be your backup. +
>