From: | SZUCS Gábor <surrano(at)mailbox(dot)hu> |
---|---|
To: | <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: ORDER BY random() LIMIT 1 slowness |
Date: | 2002-12-18 11:24:28 |
Message-ID: | 007201c2a688$0725dc40$0a03a8c0@fejleszt2 |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
----- Original Message -----
From: "Jean-Luc Lachance" <jllachan(at)nsd(dot)ca>
Sent: Tuesday, December 17, 2002 5:04 PM
> Gavin,
>
> Assuming that you have a serial column rand on poetry and you did not
> delete any row,
> here is my suggestion:
>
> CREATE TABLE poetry ( rand SERIAL, ... );
>
> SELECT * FROM poetry WHERE rand = (
> SELECT int8( curval( 'poetry_rand_seq') * random()));
Mmmm... It usually doesn't work for me. Isn't currval (NOTE: with two r's)
bound to session and has no meaning before the first call to nextval()?
7.2.1 says the following; has it changed in 7.3(.*)?
---------------------------- cut here ------------------------------
tir=> create sequence test_seq;
CREATE
tir=> select currval('test_seq');
ERROR: test_seq.currval is not yet defined in this session
tir=> select nextval('test_seq');
nextval
---------
1
(1 row)
tir=> select currval('test_seq');
currval
---------
1
(1 row)
---------------------------- cut here ------------------------------
G.
--
while (!asleep()) sheep++;
---------------------------- cut here ------------------------------
From | Date | Subject | |
---|---|---|---|
Next Message | Conxita Marín | 2002-12-18 12:54:46 | SELECT EXTRACT doesn't work with variables? |
Previous Message | Ken Guest | 2002-12-18 11:13:50 | converting string value to integer |