Re: init_htab causes SIGFPE (or worse) due to miscalculation for large nbuckets

Поиск
Список
Период
Сортировка
От Jeff Davis
Тема Re: init_htab causes SIGFPE (or worse) due to miscalculation for large nbuckets
Дата
Msg-id 1355191549.15663.10.camel@sussancws0025
обсуждение исходный текст
Ответ на Re: init_htab causes SIGFPE (or worse) due to miscalculation for large nbuckets  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: init_htab causes SIGFPE (or worse) due to miscalculation for large nbuckets  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
On Mon, 2012-12-10 at 20:27 -0500, Tom Lane wrote:
> Jeff Davis <pgsql@j-davis.com> writes:
> > It looks like all of the callers, except two, immediately shift the
> > result. So perhaps it would be better to make a new function (something
> > like "ceil_pow2") that returns the lowest power of two greater than or
> > equal to the input, and it can return a long (bounded to +LONG_MAX).
>
> That does seem like a good idea.  We need one for an int-sized result
> too, to fix the original problem in init_htab.  So I propose these
> functions:

Looks good to me. One other corner case in the version of the patch I
was working on was that nbuckets is compared to num_partitions, which is
a long. We can assert that it is less than or equal to INT_MAX in
hash_create.

Aside from that, I'll drop my version of the patch, which doesn't have
any useful differences from yours.

Regards,
    Jeff Davis

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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: init_htab causes SIGFPE (or worse) due to miscalculation for large nbuckets
Следующее
От: Tom Lane
Дата:
Сообщение: Re: init_htab causes SIGFPE (or worse) due to miscalculation for large nbuckets