Re: rowset-returning function mismatch - Mailing list pgsql-general

From Tom Lane
Subject Re: rowset-returning function mismatch
Date
Msg-id 28590.1106957301@sss.pgh.pa.us
Whole thread Raw
In response to rowset-returning function mismatch  ("Ed L." <pgsql@bluepolka.net>)
List pgsql-general
"Ed L." <pgsql@bluepolka.net> writes:
> I ask because it seems like "char" and char should match as type names,
> but don't.

No, they don't.  char without any quotes is a SQL reserved word that
is equivalent to CHARACTER(1).  "char" with quotes is not a reserved
word, by definition.  For largely historical reasons it happens to match
a single-byte datatype that existed in the deeps of time in PostQUEL,
and is still used in our system catalogs as a sort of poor man's
enumeration type.

Note the different results here:

regression=# create table foo (a char, b "char");
CREATE TABLE
regression=# \d foo
        Table "public.foo"
 Column |     Type     | Modifiers
--------+--------------+-----------
 a      | character(1) |
 b      | "char"       |

regression=#

            regards, tom lane

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Rule problem with OLD / NEW record set (repost)
Next
From: "Andre Schnoor"
Date:
Subject: Re: Moving from Sybase to Postgres - Stored Procedures