LCOV - code coverage report
Current view: top level - src/backend/optimizer/geqo - geqo_random.c (source / functions) Coverage Total Hit
Test: Code coverage Lines: 100.0 % 12 12
Test Date: 2026-01-26 10:56:24 Functions: 100.0 % 3 3
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-2026, 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            7 : geqo_set_seed(PlannerInfo *root, double seed)
      20              : {
      21            7 :         GeqoPrivateData *private = GetGeqoPrivateData(root);
      22              : 
      23            7 :         pg_prng_fseed(&private->random_state, seed);
      24            7 : }
      25              : 
      26              : double
      27          754 : geqo_rand(PlannerInfo *root)
      28              : {
      29          754 :         GeqoPrivateData *private = GetGeqoPrivateData(root);
      30              : 
      31         1508 :         return pg_prng_double(&private->random_state);
      32          754 : }
      33              : 
      34              : int
      35          985 : geqo_randint(PlannerInfo *root, int upper, int lower)
      36              : {
      37          985 :         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         1970 :         return (int) pg_prng_uint64_range(&private->random_state, lower, upper);
      44          985 : }
        

Generated by: LCOV version 2.3.2-1