mirror of
https://github.com/postgres/postgres.git
synced 2025-11-12 05:01:15 +03:00
Remove geqo_random_seed parameter. Having geqo reset the global random()
sequence every time it's called is bogus --- it interferes with user control over the seed, and actually decreases randomness overall (because a seed based on time(NULL) is pretty predictable). If you really want a reproducible result from geqo, do 'set seed = 0' before planning a query.
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Header: /cvsroot/pgsql/src/backend/optimizer/geqo/geqo_main.c,v 1.39 2003/08/12 18:23:20 tgl Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/optimizer/geqo/geqo_main.c,v 1.40 2003/09/07 15:26:52 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -41,7 +41,6 @@ int Geqo_pool_size;
|
||||
int Geqo_effort;
|
||||
int Geqo_generations;
|
||||
double Geqo_selection_bias;
|
||||
int Geqo_random_seed;
|
||||
|
||||
|
||||
static int gimme_pool_size(int nr_rel);
|
||||
@@ -96,13 +95,6 @@ geqo(Query *root, int number_of_rels, List *initial_rels)
|
||||
number_generations = gimme_number_generations(pool_size, Geqo_effort);
|
||||
status_interval = 10;
|
||||
|
||||
/* seed random number generator */
|
||||
/* XXX why is this done every time around? */
|
||||
if (Geqo_random_seed >= 0)
|
||||
srandom((unsigned int) Geqo_random_seed);
|
||||
else
|
||||
srandom((unsigned int) time(NULL));
|
||||
|
||||
/* allocate genetic pool memory */
|
||||
pool = alloc_pool(pool_size, number_of_rels);
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
* Written by Peter Eisentraut <peter_e@gmx.net>.
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v 1.155 2003/09/04 05:11:20 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v 1.156 2003/09/07 15:26:53 tgl Exp $
|
||||
*
|
||||
*--------------------------------------------------------------------
|
||||
*/
|
||||
@@ -898,15 +898,6 @@ static struct config_int ConfigureNamesInt[] =
|
||||
&Geqo_generations,
|
||||
0, 0, INT_MAX, NULL, NULL
|
||||
},
|
||||
{
|
||||
{"geqo_random_seed", PGC_USERSET, QUERY_TUNING_GEQO,
|
||||
gettext_noop("Can be set to get reproducible results from the algorithm"),
|
||||
gettext_noop("If it is set to -1 then the algorithm behaves "
|
||||
"non-deterministically")
|
||||
},
|
||||
&Geqo_random_seed,
|
||||
-1, INT_MIN, INT_MAX, NULL, NULL
|
||||
},
|
||||
|
||||
{
|
||||
{"deadlock_timeout", PGC_SIGHUP, LOCK_MANAGEMENT,
|
||||
|
||||
@@ -121,7 +121,6 @@
|
||||
#geqo_generations = 0
|
||||
#geqo_pool_size = 0 # default based on tables in statement,
|
||||
# range 128-1024
|
||||
#geqo_random_seed = -1 # -1 = use variable seed
|
||||
#geqo_selection_bias = 2.0 # range 1.5-2.0
|
||||
|
||||
# - Other Planner Options -
|
||||
|
||||
Reference in New Issue
Block a user