pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Shane Ambler <pgsql@007Marketing.com>
To: Jeff Herrin <jeff@alternateimage.com>
Cc: Andreas Kretschmer <akretschmer@spamfence.net>
Cc: pgsql-sql@postgresql.org
Subject: Re: consistent random order
Date: Thu, 30 Nov 2006 20:34:38 +1030
Message-ID: <456EACB6.4020702@007Marketing.com> (raw)
In-Reply-To: <25133466.59111164821576601.JavaMail.root@srv161.carpathiahost.net>
References: <25133466.59111164821576601.JavaMail.root@srv161.carpathiahost.net>

Jeff Herrin wrote:
> I don't think cursors are going to help in this case. The order by random() is still going to give different result sets on different pages.
> 
> Jeff

A cursor will maintain the order it was created with until it is 
disposed of.

It won't work with a web app though as each page will come from a 
different connection in the available pool (or created for each page) 
meaning you will loose the cursor between pages.

I would think you want to look at having a sort column that has a random 
number in it that is used for sorting.

mysortcol integer default random()

or maybe update the column a couple of times a day to keep the variety 
you seem to be after.


> ----- Original Message -----
> From: Andreas Kretschmer <akretschmer@spamfence.net>
> To: pgsql-sql@postgresql.org
> Sent: Wednesday, November 29, 2006 12:27:42 PM GMT-0500 US/Eastern
> Subject: Re: [SQL] consistent random order
> 
> Jeff Herrin <jeff@alternateimage.com> schrieb:
> 
>> I am returning results ordered randomly using 'order by random()'. My issue has
>> to do with page numbers in our web application. When I hit the 2nd page and
>> retrieve results with an offset, ordering by random() isn't really what I want
>> since I will often receive results that were on the 1st page (they get re-
>> randomized).
>>
>> I'm looking for a way to order in a controled random order. Maybe a UDF.
> 
> I think you are searching for CURSORs.
> 
> 18:25 < akretschmer> ??cursor
> 18:25 < rtfm_please> For information about cursor
> 18:25 < rtfm_please> see http://www.postgresql.org/docs/current/static/plpgsql-cursors.html
> 18:25 < rtfm_please> or http://www.postgresql.org/docs/current/static/sql-declare.html
> 
> With a CURSOR, you get one result-set and can walk through this result.
> 
> 
> Andreas


-- 

Shane Ambler
pgSQL@007Marketing.com

Get Sheeky @ http://Sheeky.Biz



view thread (8+ messages)  latest in thread

Message-ID: <456EACB6.4020702@007Marketing.com>
Permalink:  ../456EACB6.4020702@007Marketing.com/
Also on:    postgresql.org/message-id/456EACB6.4020702@007Marketing.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: pgsql@007Marketing.com, jeff@alternateimage.com, akretschmer@spamfence.net
  Subject: Re: consistent random order
  In-Reply-To: <456EACB6.4020702@007Marketing.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox