Re: sampling.c and potential divisions by 0 ang log(0) with tablesample and ANALYZE in 9.5

Поиск
Список
Период
Сортировка
От Petr Jelinek
Тема Re: sampling.c and potential divisions by 0 ang log(0) with tablesample and ANALYZE in 9.5
Дата
Msg-id 558E09FB.6010909@2ndquadrant.com
обсуждение исходный текст
Ответ на sampling.c and potential divisions by 0 ang log(0) with tablesample and ANALYZE in 9.5  (Michael Paquier <michael.paquier@gmail.com>)
Ответы Re: sampling.c and potential divisions by 0 ang log(0) with tablesample and ANALYZE in 9.5  (Michael Paquier <michael.paquier@gmail.com>)
Re: Re: sampling.c and potential divisions by 0 ang log(0) with tablesample and ANALYZE in 9.5  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
On 2015-06-25 10:01, Michael Paquier wrote:
> Hi all,
> (Petr in CC)
>
> Coverity is pointing out that anl_random_fract and
> sampler_random_fract can return 0, causing in some code paths math
> errors, aka division by 0 or even log(0) in the case of TABLESAMPLE or
> even ANALYZE.
>
> In 9.4, anl_random_fract is careful enough to use random() + 1 to
> prevent that, but that's not the case of 9.5 where we begin to use
> pg_erand48, that returns a double in range [0.0,1.0).
>
> I think that we should change the returned double to be (0.0,1.0]

Agreed.

> instead like in the patch attached (bernouilli and system methods need
> a brush-up as well). I haven't updated tsm_system_rows and
> tsm_system_time but their regression diffs are attached.
>

I don't see need for the other 1 - x changes outside of the
sampler_random_fract() tbh. Yes it changes the regression tests output
but I don't think it changes correctness of the results.

--
  Petr Jelinek                  http://www.2ndQuadrant.com/
  PostgreSQL Development, 24x7 Support, Training & Services

Вложения

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

Предыдущее
От: daniel.vittone@unnaki.com.py
Дата:
Сообщение: BUG #13474: Instaling error.
Следующее
От: Michael Paquier
Дата:
Сообщение: Re: sampling.c and potential divisions by 0 ang log(0) with tablesample and ANALYZE in 9.5