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

Generated by: LCOV version 2.0-1