Re: Reducing data type space usage

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: Reducing data type space usage
Дата
Msg-id 200609152307.k8FN7Ns28260@momjian.us
обсуждение исходный текст
Ответ на Reducing data type space usage  (Gregory Stark <stark@enterprisedb.com>)
Ответы Re: Reducing data type space usage  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Gregory Stark wrote:
> Case 2) Data types that are different sizes depending on the typmod but are always
>    the same size that can be determined statically for a given typmod. In the
>    case of a ASCII encoded database CHAR(n) fits this category and in any case
>    we'll eventually have per-column encoding. NUMERC(a,b) could also be made
>    to fit this as well.
>    
>    In cases like these we don't need *any* varlena header. If we could arrange
>    for the functions to have enough information to know how large the data
>    must be.

I thought about the CHAR(1) case some more.  Rather than restrict
single-byte storage to ASCII-encoded databases, I think there is a more
general solution.

First, I don't think any solution that assumes typmod will be around to
help determine the meaning of the column is going to work.

I think what will work is to store a 1-character, 7-bit ASCII value in
one byte, by setting the high bit.  This will work for any database
encoding.  This is the zero-length header case.

If the 1-character has a high bit, will require a one-byte length header
and then the high-bit byte, and if it is multi-byte, perhaps more bytes.

Zero-length header will even work for a VARCHAR(8) field that stores one
7-bit ASCII character, because it isn't relying on the typmod.

FYI, we also need to figure out how to store a zero-length string.  That
will probably be high-bit, and then all zero bits.  We don't store a
zero-byte in strings, so that should be unique for "".

--  Bruce Momjian   bruce@momjian.us EnterpriseDB    http://www.enterprisedb.com
 + If your life is a hard drive, Christ can be your backup. +


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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: log_duration is redundant, no?
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Reducing data type space usage