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
|
Список | 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 по дате отправления: