Doc: improve documentation about random().
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 23 Jul 2022 23:00:29 +0000 (19:00 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 23 Jul 2022 23:00:33 +0000 (19:00 -0400)
We didn't explicitly say that random() uses a randomly-chosen seed
if you haven't called setseed().  Do so.

Also, remove ref/set.sgml's no-longer-accurate (and never very
relevant) statement that the seed value is multiplied by 2^31-1.

Back-patch to v12 where set.sgml's claim stopped being true.
The claim that we use a source of random bits as seed was debatable
before 4203842a1, too, so v12 seems like a good place to stop.

Per question from Carl Sopchak.

Discussion: https://postgr.es/m/f37bb937-9d99-08f0-4de7-80c91a3cfc2e@sopchak.me

doc/src/sgml/func.sgml
doc/src/sgml/ref/set.sgml

index 36c3e53e42d0e39d798817a7d671af1d58e2c4c5..21f8ab73e2851ad52065da62167a70122af745b3 100644 (file)
@@ -1841,6 +1841,9 @@ repeat('Pg', 4) <returnvalue>PgPgPgPg</returnvalue>
    subsequent <function>random()</function> calls in the current session
    can be repeated by re-issuing <function>setseed()</function> with the same
    argument.
+   Without any prior <function>setseed()</function> call in the same
+   session, the first <function>random()</function> call obtains a seed
+   from a platform-dependent source of random bits.
   </para>
 
   <para>
index ae508d026e2dc6130fa585c21aed50ce1e1ecc50..5878c61f9b7944dd5564a99665794a5c6eddd627 100644 (file)
@@ -177,8 +177,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 -1 and 1, which are then
-       multiplied by 2<superscript>31</superscript>-1.
+       floating-point numbers between -1 and 1 inclusive.
       </para>
 
       <para>