Re: [SQL] char type seems the same as char(1) - Mailing list pgsql-sql

From Bruce Momjian
Subject Re: [SQL] char type seems the same as char(1)
Date
Msg-id 199812130341.WAA12919@candle.pha.pa.us
Whole thread Raw
In response to char type seems the same as char(1)  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: [SQL] char type seems the same as char(1)
List 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 by date:

Previous
From: George Moga
Date:
Subject: Re: [SQL] joins with aggregates
Next
From: Bruce Momjian
Date:
Subject: Re: [SQL] ' escape