From: | Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us> |
---|---|
To: | tgl(at)sss(dot)pgh(dot)pa(dot)us (Tom Lane) |
Cc: | pgsql-sql(at)hub(dot)org |
Subject: | Re: [SQL] char type seems the same as char(1) |
Date: | 1998-12-13 03:41:09 |
Message-ID: | 199812130341.WAA12919@candle.pha.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...
Should I add this to the TODO list, that char is not char1 but has
4-byte length?
--
Bruce Momjian | http://www.op.net/~candle
maillist(at)candle(dot)pha(dot)pa(dot)us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 1998-12-13 04:33:18 | Re: [SQL] ' escape |
Previous Message | George Moga | 1998-12-11 15:55:59 | Re: [SQL] joins with aggregates |