LCOV - code coverage report
Current view: top level - src/backend/optimizer/geqo - geqo_random.c (source / functions) Hit Total Coverage
Test: PostgreSQL 19devel Lines: 10 10 100.0 %
Date: 2025-10-10 19:18:08 Functions: 3 3 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*------------------------------------------------------------------------
       2             :  *
       3             :  * geqo_random.c
       4             :  *     random number generator
       5             :  *
       6             :  * Portions Copyright (c) 1996-2025, 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             : void
      19          42 : geqo_set_seed(PlannerInfo *root, double seed)
      20             : {
      21          42 :     GeqoPrivateData *private = GetGeqoPrivateData(root);
      22             : 
      23          42 :     pg_prng_fseed(&private->random_state, seed);
      24          42 : }
      25             : 
      26             : double
      27        4524 : geqo_rand(PlannerInfo *root)
      28             : {
      29        4524 :     GeqoPrivateData *private = GetGeqoPrivateData(root);
      30             : 
      31        4524 :     return pg_prng_double(&private->random_state);
      32             : }
      33             : 
      34             : int
      35        5910 : geqo_randint(PlannerInfo *root, int upper, int lower)
      36             : {
      37        5910 :     GeqoPrivateData *private = GetGeqoPrivateData(root);
      38             : 
      39             :     /*
      40             :      * In current usage, "lower" is never negative so we can just use
      41             :      * pg_prng_uint64_range directly.
      42             :      */
      43        5910 :     return (int) pg_prng_uint64_range(&private->random_state, lower, upper);
      44             : }

Generated by: LCOV version 1.16