Re: random() function produces wrong range

Поиск
Список
Период
Сортировка
От Thomas Swan
Тема Re: random() function produces wrong range
Дата
Msg-id 4.3.2.7.2.20000802222151.02ca3a90@sunset.backbone.olemiss.edu
обсуждение исходный текст
Ответ на Re: random() function produces wrong range  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: random() function produces wrong range  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
>> none of the man pages I've looked at so far mention it).  But all the
>> machines say that the output of random() is 31 bits, so INT_MAX should
>> work.

> SuSv2 says explicitly 2^31-1 so you should use that, otherwise you'll
> be non-portable to platforms with 64-bit ints, for example.

Maybe.  You don't think that a 64-bit-int platform would choose to
supply a random() function with a range of 2^63-1?  The HPUX and SunOS
man pages clearly specify that random()'s result is "long", so I think
a case could also be made for LONG_MAX.

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?

-
- Thomas Swan                                   
- Graduate Student  - Computer Science
- The University of Mississippi
-
- "People can be categorized into two fundamental
- groups, those that divide people into two groups
- and those that don't."

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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: comparing rows
Следующее
От: "Hiroshi Inoue"
Дата:
Сообщение: Raw constraint & pg_relcheck.rcsrc