How Setseed() Works in PostgreSQL

In PostgreSQL, the setseed() function sets the seed for subsequent random() and random_normal() calls (value between -1.0 and 1.0, inclusive).

The random() function generates a pseudo-random number using a simple linear congruential algorithm. The random_normal() function generates a normally-distributed random number.

If setseed() is called, the results of subsequent random() and random_normal() calls in the current session are repeatable by re-issuing setseed() with the same argument.

Continue reading

How Random() Works in PostgreSQL

In PostgreSQL, the random() function returns a pseudo-random value in the range 0.0 <= x < 1.0.

It uses a simple linear congruential algorithm, which is one of the oldest and best-known pseudo-random number generator algorithms.

A pseudo-random number is a number that appears to be random, but is not truely random. A pseudo-random number is not truely random because its value was generated by a known seed. However, it will appear to be random if the user has no knowledge of the seed or algorithm that created it.

Therefore, pseudo-random numbers are often considered good enough for many applications.

Continue reading