Silly bug in pgbench's random number generator

From: Gregory Stark <stark(at)enterprisedb(dot)com>
To: pgsql-patches <pgsql-patches(at)postgresql(dot)org>
Subject: Silly bug in pgbench's random number generator
Date: 2007-06-14 16:51:48
Message-ID: 87fy4uv5qz.fsf@oxford.xeocode.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-patches


pgbench's random number generator was only generating the first and last value
in the specified range half as often as other values in the range. Not that it
actually matters but it may as well do what it claims. This line has a pretty
long and sordid history with various people tweaking it one way and another.

cvs diff: Diffing contrib/pgbench
Index: contrib/pgbench/pgbench.c
===================================================================
RCS file: /home/stark/src/REPOSITORY/pgsql/contrib/pgbench/pgbench.c,v
retrieving revision 1.66
diff -u -r1.66 pgbench.c
--- contrib/pgbench/pgbench.c 24 May 2007 18:54:10 -0000 1.66
+++ contrib/pgbench/pgbench.c 14 Jun 2007 16:22:19 -0000
@@ -191,7 +191,7 @@
static int
getrand(int min, int max)
{
- return min + (int) (((max - min) * (double) random()) / MAX_RANDOM_VALUE + 0.5);
+ return min + (int) (((max - min + 1) * (double) random()) / MAX_RANDOM_VALUE);
}

/* call PQexec() and exit() on failure */

--
Gregory Stark
EnterpriseDB http://www.enterprisedb.com

Responses

Browse pgsql-patches by date

  From Date Subject
Next Message Simon Riggs 2007-06-14 17:50:17 Re: Sorted writes in checkpoint
Previous Message Greg Smith 2007-06-14 15:58:33 Re: Sorted writes in checkpoint