Details
-
Bug
-
Status: Open
-
Minor
-
Resolution: Unresolved
-
10.3.1.4, 10.3.2.1, 10.4.1.3
-
None
-
Normal
Description
RAND or
{fn RAND(seed)} exists to match the JDBC specification (section C.1)
RAND(integer) Random floating point for seed integer
Trouble is that Derby creates a new Random() instance for every call leading to the same return value for the same seed. Seems to be useful, the function should return a new random number even when handed the same seed.
Some more specification is probably needed, when does a sequence based upon a seed start?
- first call by any connection
- sequence within a connection
- sequence within a sql context (e.g. procedure call, statement etc.)
Also need to be wary of memory leaks if the engine needs to hold onto Random objects beyond the lifetime of the RAND call.
ij> values rand(3);
1
----------------------
0.731057369148862
1 row selected
ij> values rand(3);
1
----------------------
0.731057369148862
1 row selected
ij> values
;
1
----------------------
0.731057369148862
1 row selected
Attachments
Issue Links
- is related to
-
DERBY-3297 Document SIGN, SQRT, RAND, RANDOM, COSH, COT, SINH and TANH functions.
- Closed