Re: win32 random number generator
"Merlin Moncure" <[email protected]> Mon, 22 Aug 2005 16:59:13 -0400
| Newsgroups | gmane.comp.db.postgresql.devel.win32 |
|---|---|
| Message-ID | <[email protected]> |
> "Merlin Moncure" <[email protected]> writes: > > The windows random number of generator (a port of lrand48 in random.c) > > seems a little weak. It seems to only offer about 16 bits of precision. > > Maybe there is a bug in the implementation? >=20 > > esp=3D# select count(*) from (select distinct random() from > > generate_series(1,1000000)) q; > > count > > ------- > > 65559 > > (1 row) >=20 > That's pretty awful, all right. I get numbers like this on two > different Unix machines: I'll research a fix. Here's a clearer picture of the problem: select distinct (random()::numeric(10,8)) * 65536 from generate_series(1,1000000); esp=3D# select distinct (random() * 65536)::numeric(15,8) from generate_series(1,1000000); numeric ---------------- 0.00003052 1.00003052 2.00003052 3.00003052 4.00003052 [...] oops! :) Merlin ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match