Re: [SQL] char type seems the same as char(1)
От | Bruce Momjian |
---|---|
Тема | Re: [SQL] char type seems the same as char(1) |
Дата | |
Msg-id | 199812130341.WAA12919@candle.pha.pa.us обсуждение исходный текст |
Ответ на | char type seems the same as char(1) (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: [SQL] char type seems the same as char(1)
|
Список | 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@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026
В списке pgsql-sql по дате отправления: