On 23.12.2005, at 13:34 Uhr, Carlos Benkendorf wrote:
For some implementation reason in 8.0.3 the query is returning the rows in the correct order even without the order by but in 8.1.1 probably the implementation changed and the rows are not returning in the correct order.
You will never be sure to get rows in a specific order without an "order by".
I don't know why PG is faster without ordering, perhaps others can help with that so you don't need a workaround like this:
If you can't force PostgreSQL to perform better on the ordered query, what about retrieving only the primary keys for the rows you want unordered in a subquery and using an "where primaryKey in (...) order by ..." statement with ordering the five rows?
Like this:select * from mytable where pk in (select pk from mytable where ...) order by ...;
I don't know whether the query optimizer will flatten this query, but you can try it.
cug -- PharmaLine Essen, GERMANY and Big Nerd Ranch Europe - PostgreSQL Training, Feb. 2006, Rome, Italy http://www.bignerdranch.com/classes/postgresql.shtml
Attachment:
smime.p7s
Description: S/MIME cryptographic signature