I wrote:
> Andrew Dunstan <[email protected]> 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...
regards, tom lane
--
Sent via pgsql-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers