Re: reducing NUMERIC size for 9.1

Поиск
Список
Период
Сортировка
От Robert Haas
Тема Re: reducing NUMERIC size for 9.1
Дата
Msg-id AANLkTikjqXc2rX6GuG1tKhkM+=zGXZ7MaCOEzWX2sJ9w@mail.gmail.com
обсуждение исходный текст
Ответ на Re: reducing NUMERIC size for 9.1  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: reducing NUMERIC size for 9.1  (Robert Haas <robertmhaas@gmail.com>)
Список pgsql-hackers
On Fri, Jul 30, 2010 at 2:08 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Robert Haas <robertmhaas@gmail.com> writes:
>> ....  Maybe something like this,
>> obviously with a suitable comment which I haven't written yet:
>
>>     numeric_digits = (precision + 6) / 4;
>>     return (numeric_digits * sizeof(int16)) + NUMERIC_HDRSZ;
>
> This is OK for the base-10K case, but there's still code in there
> for the base-10 and base-100 cases.  Can you express this logic in
> terms of DEC_DIGITS and sizeof(NumericDigit) ?  I think you might
> find it was actually clearer that way, cf Polya.

It appears to work out to:
   numeric_digits = (precision + 2 * (DEC_DIGITS - 1)) / DEC_DIGITS   return (numeric_digits * sizeof(NumericDigits)) +
NUMERIC_HDRSZ;

The smallest value for precision which requires 2 numeric_digits is
always 2; and the required number of numeric_digits increases by 1
each time the number of base-10 digits increases by DEC_DIGITS.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise Postgres Company


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

Предыдущее
От: Alvaro Herrera
Дата:
Сообщение: Re: lock_timeout GUC patch - Review
Следующее
От: Tom Lane
Дата:
Сообщение: ANALYZE versus expression indexes with nondefault opckeytype