Re: Refactoring the Type System

Поиск
Список
Период
Сортировка
От Greg Stark
Тема Re: Refactoring the Type System
Дата
Msg-id AANLkTinCrEKtjWX5g2SPf3DHW52rayEzDw+-KFr27+6b@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Refactoring the Type System  (Daniel Farina <drfarina@acm.org>)
Ответы Re: Refactoring the Type System  (Robert Haas <robertmhaas@gmail.com>)
Re: Refactoring the Type System  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
On Sun, Nov 14, 2010 at 11:15 AM, Daniel Farina <drfarina@acm.org> wrote:
> SUM(int2) => int4
> SUM(int4) => int8
> SUM(int8) => numeric
>
> Some weaknesses:
>
> SUM, of any precision, assumes that the precision being accumulated
> into (which is also the return-precision) is enough to avoid overflow.
> This is generally the case, but there's no reason why it *must* be
> true. I'm especially looking at the int2 to int4 conversion. One could
> imagine a more interesting scenario where overflow behavior could
> occur much more easily.

Fwiw I think he's right that sum(int2) should perhaps be redefined to
return int8. As it stands all it would take is a 64k rows to
potentially overflow. It's not super likely but it is plausible and
the performance penalty to use int8 wouldn't be super big either.

int4 doesn't seem like as realistic a problem since it would take 4
billion rows and the performance penalty for using numeric would be
much higher.

-- 
greg


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

Предыдущее
От: Robert Haas
Дата:
Сообщение: Re: Comparison with "true" in source code
Следующее
От: Itagaki Takahiro
Дата:
Сообщение: Re: Comparison with "true" in source code