2007/10/9, Bruce Momjian <[EMAIL PROTECTED]>: > Pavel Stehule wrote: > > 4.1) > > > > To SELECT a random row, use: > > SELECT col > > FROM tab > > ORDER BY random() > > LIMIT 1; > > > > + On bigger tables this solution is slow. Please, find smarter > > solution on network. > > > > Well, give me a better example that works.
Better universal solution doesn't exist. Exists only unelegant solutions - but mutch faster. SELECT id, ... FROM data WHERE id = ANY(ARRAY( SELECT (random()*:max_id)::int FROM generate_series(1,20))) LIMIT 1; max_id is host variable ~ real max id + some -- fast solution if id is PK of data > > > 4.19) > > > > + most of problems with invalid OIDs in cache are solved in PostgreSQL > > 8.3. Please remeber, so every replanning of SQL statements needs time. > > Write your application, they can exist without cache invalidation. > > Agreed. Item removed. > Cache invalidation isn't 100% protection before this error message. With specific using of EXECUTE statement, you can get this message too. But all temp tables related problems are solved. Regards Pavel Stehule ---------------------------(end of broadcast)--------------------------- TIP 2: Don't 'kill -9' the postmaster