YugabyteDB (2.13.1.0-b60, 21121d69985fbf76aa6958d8f04a9bfa936293b5)

Coverage Report

Created: 2022-03-22 16:43

/Users/deen/code/yugabyte-db/src/postgres/src/backend/optimizer/geqo/geqo_random.c
Line
Count
Source
1
/*------------------------------------------------------------------------
2
 *
3
 * geqo_random.c
4
 *     random number generator
5
 *
6
 * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group
7
 * Portions Copyright (c) 1994, Regents of the University of California
8
 *
9
 * src/backend/optimizer/geqo/geqo_random.c
10
 *
11
 *-------------------------------------------------------------------------
12
 */
13
14
#include "postgres.h"
15
16
#include "optimizer/geqo_random.h"
17
18
19
void
20
geqo_set_seed(PlannerInfo *root, double seed)
21
1
{
22
1
  GeqoPrivateData *private = (GeqoPrivateData *) root->join_search_private;
23
24
  /*
25
   * XXX. This seeding algorithm could certainly be improved - but it is not
26
   * critical to do so.
27
   */
28
1
  memset(private->random_state, 0, sizeof(private->random_state));
29
1
  memcpy(private->random_state,
30
1
       &seed,
31
1
       Min(sizeof(private->random_state), sizeof(seed)));
32
1
}
33
34
double
35
geqo_rand(PlannerInfo *root)
36
540
{
37
540
  GeqoPrivateData *private = (GeqoPrivateData *) root->join_search_private;
38
39
540
  return pg_erand48(private->random_state);
40
540
}