Tom Lane wrote:
I wrote:
Andrew Dunstan <and...@dunslane.net> writes:
It appears on Googling a bit that the erand48() is buggy in that it
requires the seed to have been initialized with srand48() or it will
constantly return 0.0.
Huh, and that sends us into an infinite loop? I'll take a look at that.
Even though it's surely nonrandom, it doesn't seem like pathological
behavior of the RNG should wedge us completely.
The answer is that a constant RNG result sends this bit of
geqo_selection() into a tight loop:
int first,
second;
first = linear(root, pool->size, bias);
second = linear(root, pool->size, bias);
if (pool->size > 1)
{
while (first == second)
second = linear(root, pool->size, bias);
}
Not sure if it's worth trying to do something about that, or exactly
what we'd do anyway. Even if we hacked this up somehow, a constant RNG
result would pretty much break GEQO for any useful purpose. So it could
be argued that having the regression tests fail here is a good thing...
Right. Let's let sleeping dogs lie. I think at most a code comment is
the only action called for.
cheers
andrew
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers