Re: random() function produces wrong range - Mailing list pgsql-hackers

From Thomas Swan
Subject Re: random() function produces wrong range
Date
Msg-id 4.3.2.7.2.20000802222151.02ca3a90@sunset.backbone.olemiss.edu
Whole thread Raw
In response to Re: random() function produces wrong range  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: random() function produces wrong range  (Tom Lane <tgl@sss.pgh.pa.us>)
List 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 by date:

Previous
From: Tom Lane
Date:
Subject: Re: comparing rows
Next
From: "Hiroshi Inoue"
Date:
Subject: Raw constraint & pg_relcheck.rcsrc