I just noticed that psql is now printing function argument/result types
in a less than pleasing fashion:
regression=# \df length List of functionsResult data type | Name | Argument data types
------------------+--------+---------------------integer | length | "bit"integer | length |
bpcharinteger | length | character varyinginteger | 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