Re: [HACKERS] random() function produces wrong range
От | Tom Lane |
---|---|
Тема | Re: [HACKERS] random() function produces wrong range |
Дата | |
Msg-id | 7985.965314590@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: [HACKERS] random() function produces wrong range (Thomas Swan <tswan@olemiss.edu>) |
Список | pgsql-general |
Thomas Swan <tswan@olemiss.edu> writes: >> I suspect we have a good chance at getting burned no matter what we use >> :-(. But RAND_MAX is definitely the wrong thing. > Is it possible to test (during configure phase) and then go from there... > or does it need to be the same for all platforms? I thought about that last night. We could do a configure test. Since it'd be probing random() results there'd be a small probability of failure, but if we wire in an assumption that the max value must be 2^(15 + n*16)-1 for some n, ten or so probes would give us a failure probability on the order of 2^-160, which ought to satisfy anyone. However, in the absence of any hard evidence that there are platforms where the value is different from 2^31-1, it's probably just a waste of configuration cycles at the moment. I suggest we add a config.h constant like /* The local random() function yields values 0 .. MAX_RANDOM_VALUE */ #define MAX_RANDOM_VALUE <2^31-1> and use that in the code. Then, if we ever find a platform where random() does actually produce 64-bit results, it'll be time enough to crank up a real configure test to set the value. Comments? regards, tom lane
В списке pgsql-general по дате отправления: