Re: some random() clarification needed - Mailing list pgsql-general

From David Rowley
Subject Re: some random() clarification needed
Date
Msg-id CAApHDvqHQN557Yr8+2m3Crd0YvJ9Zg_hXLGbhfc2G+Zvso2WxA@mail.gmail.com
Whole thread Raw
In response to Re: some random() clarification needed  (Marc Millas <marc.millas@mokadb.com>)
Responses Re: some random() clarification needed
List pgsql-general
On Wed, 15 Jul 2020 at 04:01, Marc Millas <marc.millas@mokadb.com> wrote:
> your answer helps me understand my first problem.
> so, I rewrote a simple loop so as to avoid the "volatile" behaviour.

Not sure what you're trying to do with the plpgsql, but you can just
escape the multiple evaluations by putting the volatile function in a
sub-select with no FROM clause.

SELECT ... FROM ... WHERE id = (SELECT ceiling(random()*2582));

Or the more traditional way to get a random row is:

SELECT ... FROM ... WHERE id BETWEEN 0 AND 2585 ORDER BY random() LIMIT 1;

David



pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Convert hot_standby 9.4 postgresql into standalone server
Next
From: TALLURI Nareshkumar
Date:
Subject: RE: psql: FATAL: database "postgres" does not exist or ERROR: 23505: duplicate key value violates unique constraint "pg_namespace_nspname_index"