Thats a really good idea, just store a list of the sorted ids in the temp table - small amount of data for insert... I like it!
Alex Turner NetEconomist
The best part is that you can skip the LIMIT/OFFSET entirely if you put page numbers in your cache table while inserting into it, via a temporary sequence or something. Retrieving the results will then be very fast, but beware that SELECT * FROM table WHERE id =ANY( array ) won't use an index, so you'll have to trick the thing by generating a query with IN, or joining against a SRF returning the elements of the array one by one, which might be better.
---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives?
http://archives.postgresql.org