I just noticed that psql is now printing function argument/result types
in a less than pleasing fashion:

regression=# \df length
                List of functions
 Result data type |  Name  | Argument data types
------------------+--------+---------------------
 integer          | length | "bit"
 integer          | length | bpchar
 integer          | length | character varying
 integer          | length | text
 ....

It used to show these first two as unquoted bit and character,
respectively.  The reason for the change is my recent twiddling
to ensure that pg_dump would dump the types of columns with -1
typmod in an appropriate fashion.

I think an appropriate fix would be to make the format_type function
distinguish between format_type(typeoid, -1) and format_type(typeoid,
NULL), which it currently treats the same.  The former could be taken
to mean "give me the type name for a column with typmod -1" whereas
the latter could be taken to mean "give me a type name in a context
where there is no typmod", such as a function argument/result type.

Looking through the existing uses of format_type, it seems that all
the call sites have the right choice already, so this behavior is not
too unreasonable.  Any objections?

			regards, tom lane

Sun, 18 Nov 2001 23:37:11 -0500
Tom Lane <tgl@sss.pgh.pa.us>
format_type infelicity
Tom Lane writes:

> I think an appropriate fix would be to make the format_type function
> distinguish between format_type(typeoid, -1) and format_type(typeoid,
> NULL), which it currently treats the same.  The former could be taken
> to mean "give me the type name for a column with typmod -1" whereas
> the latter could be taken to mean "give me a type name in a context
> where there is no typmod", such as a function argument/result type.

This was the idea, but until recently there was no actual need for
printing something different.

-- 
Peter Eisentraut   peter_e@gmx.net


Mon, 19 Nov 2001 15:40:01 +0100 (CET)
Peter Eisentraut <peter_e@gmx.net>
Re: format_type infelicity