PostgreSQL has a type called char
that's stored as an signed 1 byte int
The type
"char"
(note the quotes) is different fromchar(1)
in that it only uses one byte of storage. It is internally used in the system catalogs as a simplistic enumeration type.
Can we create composite types with "char"
? I can create a table with it…
CREATE TABLE pixel ( r "char", g "char", b "char" );
Internally that creates a type which I can use elsewhere,
CREATE TABLE f ( mypixel pixel );
But, can I create a simple TYPE
(no table) from it?
CREATE TYPE pixel ( r "char", g "char", b "char" );
ERROR: syntax error at or near ""char""
LINE 1: CREATE TYPE pixel ( r "char", g "char", b "char" );
Best Answer
It's just the missing keyword
AS
:The data type
"char"
is a non-standard type, primarily meant for internal purposes. But it's just another type - except for the peculiar spelling of the name including the double-quotes to disambiguate againstchar
.