From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | pgsql-sql(at)hub(dot)org |
Subject: | char type seems the same as char(1) |
Date: | 1998-11-25 18:05:11 |
Message-ID: | 28655.912017111@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
The Postgres documentation (chapter "Data Types" in the User's Manual)
states that type char is a single byte, whereas char(n) requires 4+n
bytes. Some experimentation, however, shows that "char" is actually
equivalent to char(1) --- it takes 5 bytes to store, even though psql's
"\d table" command lies and claims it takes only 1. Worse, the field
requires 4-byte alignment, which means if you have several of them
in a row, it's costing you 8 bytes apiece.
Is this a documentation error, or a code bug? If not a bug, is there
any other way to store a character as a single-byte field? I'm
currently using char fields all over the place as "poor man's enumerated
type" values, and I'm rather annoyed to find that what I thought was
taking 1 byte per field is actually taking 8...
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Vadim Mikheev | 1998-11-26 03:27:44 | Re: [HACKERS] Re: [SQL] cursor and update + view |
Previous Message | Tom Lane | 1998-11-25 15:55:33 | Re: Question about schema |