"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