Re: Random not so random
stimits@comcast.net
From: "D. Stimits" <stimits@comcast.net>
To:
Cc: pgsql-general@postgresql.org
Date: 2004-10-04T14:22:37Z
Lists: pgsql-general
Tom Lane wrote: > "Arnau Rebassa" <arebassa@hotmail.com> writes: > >> I'm using a debian linux as OS with a 2.4 kernel running on it. > > >>>Incidentally, are you reconnecting every time or is it that multiple calls >>>in a single session are returning the same record? > > >> I'm reconnecting each time I want to retrieve a message. > > > Hmm. postmaster.c does this during startup of each backend process: > > gettimeofday(&now, &tz); > srandom((unsigned int) now.tv_usec); If it uses the same seed from the connection, then all randoms within a connect that has not reconnected will use the same seed. Which means the same sequence will be generated each time, which is why it is pseudo-random and not random. For it to be random not just the first call of a new connection, but among all calls of new connection, it would have to seed it based on time at the moment of query and not at the moment of connect. A pseudo-random generator using the same seed will generate the same sequence. D. Stimits, stimits AT comcast DOT net