On Dec 5, 2007, at 14:19 , Alex Mayrhofer wrote:

Hi,

i'm trying to find out the storage size for bit(n) data. My initial assumption would be that for any 8 bits, one byte of storage is required.

select pg_column_size(B'1') as "1bit",
       pg_column_size(B'1111') as "4bits",
       pg_column_size(B'11111111') as "1byte",
       pg_column_size(B'111111111111') as "12bits",
       pg_column_size(B'1111111111111111') as "2bytes",
       pg_column_size(B'11111111111111111') as "17bits",
       pg_column_size(B'111111111111111111111111') as "3bytes";
1bit | 4bits | 1byte | 12bits | 2bytes | 17bits | 3bytes
------+-------+-------+--------+--------+--------+--------
    9 |     9 |     9 |     10 |     10 |     11 |     11
(1 row)

Looks like there's 8 bytes of overhead as well, probably because a bit string is a varlena type.

Michael Glaesemann
grzm seespotcode net



---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

Reply via email to