char type seems the same as char(1)

Поиск
Список
Период
Сортировка
От Tom Lane
Тема char type seems the same as char(1)
Дата
Msg-id 28655.912017111@sss.pgh.pa.us
обсуждение исходный текст
Ответы Re: [SQL] char type seems the same as char(1)  (Bruce Momjian <maillist@candle.pha.pa.us>)
Список 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

В списке pgsql-sql по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Question about schema
Следующее
От: Stuart Rison
Дата:
Сообщение: [SQL] Typecasting datetype as date. How do I cope with NULLs?