#include "postgres.h"#include "optimizer/geqo_random.h"
Go to the source code of this file.
Functions | |
| void | geqo_set_seed (PlannerInfo *root, double seed) |
| double | geqo_rand (PlannerInfo *root) |
| double geqo_rand | ( | PlannerInfo * | root | ) |
Definition at line 35 of file geqo_random.c.
References PlannerInfo::join_search_private, and pg_erand48().
Referenced by linear_rand().
{
GeqoPrivateData *private = (GeqoPrivateData *) root->join_search_private;
return pg_erand48(private->random_state);
}
| void geqo_set_seed | ( | PlannerInfo * | root, | |
| double | seed | |||
| ) |
Definition at line 20 of file geqo_random.c.
References PlannerInfo::join_search_private, and Min.
Referenced by geqo().
{
GeqoPrivateData *private = (GeqoPrivateData *) root->join_search_private;
/*
* XXX. This seeding algorithm could certainly be improved - but it is not
* critical to do so.
*/
memset(private->random_state, 0, sizeof(private->random_state));
memcpy(private->random_state,
&seed,
Min(sizeof(private->random_state), sizeof(seed)));
}
1.7.1