summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane2003-09-13 21:44:50 +0000
committerTom Lane2003-09-13 21:44:50 +0000
commitc472b8366f5bec1da4d5d5b894f47508bbc8d5d6 (patch)
tree26615ebe830975a50b1698dece1286e1adecaa52
parent94a13b8a117c134a18ae37764c5524874b479db2 (diff)
With Joe Conway's concurrence, remove srandom() call from normal_rand().
This was the last piece of code that took it upon itself to reset the random number sequence --- now we only have srandom() in postmaster start, backend start, and explicit setseed() operations.
-rw-r--r--contrib/tablefunc/README.tablefunc11
-rw-r--r--contrib/tablefunc/expected/tablefunc.out2
-rw-r--r--contrib/tablefunc/sql/tablefunc.sql2
-rw-r--r--contrib/tablefunc/tablefunc.c10
-rw-r--r--contrib/tablefunc/tablefunc.sql.in2
5 files changed, 9 insertions, 18 deletions
diff --git a/contrib/tablefunc/README.tablefunc b/contrib/tablefunc/README.tablefunc
index b80899e957e..ddae9313194 100644
--- a/contrib/tablefunc/README.tablefunc
+++ b/contrib/tablefunc/README.tablefunc
@@ -48,7 +48,7 @@ Installation:
installs following functions into database template1:
- normal_rand(int numvals, float8 mean, float8 stddev, int seed)
+ normal_rand(int numvals, float8 mean, float8 stddev)
- returns a set of normally distributed float8 values
crosstabN(text sql)
@@ -74,12 +74,12 @@ Documentation
==================================================================
Name
-normal_rand(int, float8, float8, int) - returns a set of normally
+normal_rand(int, float8, float8) - returns a set of normally
distributed float8 values
Synopsis
-normal_rand(int numvals, float8 mean, float8 stddev, int seed)
+normal_rand(int numvals, float8 mean, float8 stddev)
Inputs
@@ -92,9 +92,6 @@ Inputs
stddev
the standard deviation of the normal distribution of values
- seed
- a seed value for the pseudo-random number generator
-
Outputs
Returns setof float8, where the returned set of random values are normally
@@ -103,7 +100,7 @@ Outputs
Example usage
test=# SELECT * FROM
- test=# normal_rand(1000, 5, 3, EXTRACT(SECONDS FROM CURRENT_TIME(0))::int);
+ test=# normal_rand(1000, 5, 3);
normal_rand
----------------------
1.56556322244898
diff --git a/contrib/tablefunc/expected/tablefunc.out b/contrib/tablefunc/expected/tablefunc.out
index fa69cf3b4a6..2e412e5cfa2 100644
--- a/contrib/tablefunc/expected/tablefunc.out
+++ b/contrib/tablefunc/expected/tablefunc.out
@@ -7,7 +7,7 @@
-- normal_rand()
-- no easy way to do this for regression testing
--
-SELECT avg(normal_rand)::int FROM normal_rand(100, 250, 0.2, EXTRACT(SECONDS FROM CURRENT_TIME(0))::int);
+SELECT avg(normal_rand)::int FROM normal_rand(100, 250, 0.2);
avg
-----
250
diff --git a/contrib/tablefunc/sql/tablefunc.sql b/contrib/tablefunc/sql/tablefunc.sql
index fe0e4d44bc8..5292fc2bc78 100644
--- a/contrib/tablefunc/sql/tablefunc.sql
+++ b/contrib/tablefunc/sql/tablefunc.sql
@@ -10,7 +10,7 @@
-- normal_rand()
-- no easy way to do this for regression testing
--
-SELECT avg(normal_rand)::int FROM normal_rand(100, 250, 0.2, EXTRACT(SECONDS FROM CURRENT_TIME(0))::int);
+SELECT avg(normal_rand)::int FROM normal_rand(100, 250, 0.2);
--
-- crosstab()
diff --git a/contrib/tablefunc/tablefunc.c b/contrib/tablefunc/tablefunc.c
index 312c63a4c0c..031d7c8bc8a 100644
--- a/contrib/tablefunc/tablefunc.c
+++ b/contrib/tablefunc/tablefunc.c
@@ -165,8 +165,8 @@ typedef struct crosstab_hashent
* normal_rand - return requested number of random values
* with a Gaussian (Normal) distribution.
*
- * inputs are int numvals, float8 lower_bound, and float8 upper_bound
- * returns float8
+ * inputs are int numvals, float8 mean, and float8 stddev
+ * returns setof float8
*/
PG_FUNCTION_INFO_V1(normal_rand);
Datum
@@ -213,12 +213,6 @@ normal_rand(PG_FUNCTION_ARGS)
funcctx->user_fctx = fctx;
- /*
- * we might actually get passed a negative number, but for this
- * purpose it doesn't matter, just cast it as an unsigned value
- */
- srandom(PG_GETARG_UINT32(3));
-
MemoryContextSwitchTo(oldcontext);
}
diff --git a/contrib/tablefunc/tablefunc.sql.in b/contrib/tablefunc/tablefunc.sql.in
index 2714db199c8..f3d5d3d8a1a 100644
--- a/contrib/tablefunc/tablefunc.sql.in
+++ b/contrib/tablefunc/tablefunc.sql.in
@@ -1,7 +1,7 @@
-- Adjust this setting to control where the objects get created.
SET search_path = public;
-CREATE OR REPLACE FUNCTION normal_rand(int4, float8, float8, int4)
+CREATE OR REPLACE FUNCTION normal_rand(int4, float8, float8)
RETURNS setof float8
AS 'MODULE_PATHNAME','normal_rand'
LANGUAGE 'C' VOLATILE STRICT;