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
Re: Re: sampling.c and potential divisions by 0 ang log(0) with tablesample and ANALYZE in 9.5 |
Список | 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 по дате отправления: