summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/src/sgml/func.sgml4
-rw-r--r--doc/src/sgml/ref/set.sgml4
-rw-r--r--src/backend/utils/adt/float.c8
-rw-r--r--src/backend/utils/misc/guc.c4
4 files changed, 12 insertions, 8 deletions
diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml
index 1052ab0d670..ec138a5c2dc 100644
--- a/doc/src/sgml/func.sgml
+++ b/doc/src/sgml/func.sgml
@@ -1,4 +1,4 @@
-<!-- $PostgreSQL: pgsql/doc/src/sgml/func.sgml,v 1.423 2008/03/06 18:49:32 momjian Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/func.sgml,v 1.424 2008/03/10 12:39:22 tgl Exp $ -->
<chapter id="functions">
<title>Functions and Operators</title>
@@ -828,7 +828,7 @@
<row>
<entry><literal><function>setseed</function>(<type>dp</type>)</literal></entry>
<entry><type>void</type></entry>
- <entry>set seed for subsequent <literal>random()</literal> calls (value between 0 and 1.0)</entry>
+ <entry>set seed for subsequent <literal>random()</literal> calls (value between -1.0 and 1.0)</entry>
<entry><literal>setseed(0.54823)</literal></entry>
<entry></entry>
</row>
diff --git a/doc/src/sgml/ref/set.sgml b/doc/src/sgml/ref/set.sgml
index 26ee8594b44..a31d1540526 100644
--- a/doc/src/sgml/ref/set.sgml
+++ b/doc/src/sgml/ref/set.sgml
@@ -1,5 +1,5 @@
<!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/set.sgml,v 1.91 2007/09/11 00:06:41 tgl Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/set.sgml,v 1.92 2008/03/10 12:39:22 tgl Exp $
PostgreSQL documentation
-->
@@ -166,7 +166,7 @@ SET [ SESSION | LOCAL ] TIME ZONE { <replaceable class="PARAMETER">timezone</rep
<para>
Sets the internal seed for the random number generator (the
function <function>random</function>). Allowed values are
- floating-point numbers between 0 and 1, which are then
+ floating-point numbers between -1 and 1, which are then
multiplied by 2<superscript>31</>-1.
</para>
diff --git a/src/backend/utils/adt/float.c b/src/backend/utils/adt/float.c
index e7d0cdd70dd..2f1e262ea7a 100644
--- a/src/backend/utils/adt/float.c
+++ b/src/backend/utils/adt/float.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/float.c,v 1.153 2008/01/01 19:45:52 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/float.c,v 1.154 2008/03/10 12:39:22 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1684,8 +1684,12 @@ Datum
setseed(PG_FUNCTION_ARGS)
{
float8 seed = PG_GETARG_FLOAT8(0);
- int iseed = (int) (seed * MAX_RANDOM_VALUE);
+ int iseed;
+ if (seed < -1 || seed > 1)
+ elog(ERROR, "setseed parameter %f out of range [-1,1]", seed);
+
+ iseed = (int) (seed * MAX_RANDOM_VALUE);
srandom((unsigned int) iseed);
PG_RETURN_VOID();
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 2616c979535..49958cb4e7f 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -10,7 +10,7 @@
* Written by Peter Eisentraut <[email protected]>.
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.435 2008/03/10 03:22:29 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.436 2008/03/10 12:39:23 tgl Exp $
*
*--------------------------------------------------------------------
*/
@@ -1849,7 +1849,7 @@ static struct config_real ConfigureNamesReal[] =
GUC_NO_SHOW_ALL | GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE
},
&phony_random_seed,
- 0.5, 0.0, 1.0, assign_random_seed, show_random_seed
+ 0.0, -1.0, 1.0, assign_random_seed, show_random_seed
},
{