From: | Richard Huxton <dev(at)archonet(dot)com> |
---|---|
To: | jef peeraer <jef(dot)peeraer(at)telenet(dot)be> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: upgrade 8.1.4 -> latest, sort order subquery |
Date: | 2007-06-26 20:10:58 |
Message-ID: | 468172D2.9090406@archonet.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
jef peeraer wrote:
> i decide this weekend to upgrade to the latest stable version from an
> 8.1.4 . Upgrade went smootly, as usual, but today, i've got some
> phonecalls of something weird. The query is as follows :
>
>
> registratie=# select * from module_info where type_module_id = 1;
> i combine this with the next query in a subquery
> The resulting query , which should return the same result as the first one
Here's where I think you're wrong.
> registratie=# select * from module_info where type_module_id in
> (select * from get_parent_type_modules(1));
> The order is completely ignored, although there is an order by in the view
> 'module_info'
You're applying a where clause to the output of your view - filtering it
after the sort is done. If that filter is e.g. by a hash then the result
will be in a different order (or at least might be).
In general, the only ORDER BY you can rely on is one applied to the
final results of your SELECT.
--
Richard Huxton
Archonet Ltd
From | Date | Subject | |
---|---|---|---|
Next Message | Richard Huxton | 2007-06-26 20:12:02 | Re: Ordering in SELECT statement |
Previous Message | Andrej Ricnik-Bay | 2007-06-26 19:52:33 | Re: yet another simple SQL question |