Re: upgrade 8.1.4 -> latest, sort order subquery

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

In response to

Responses

Browse pgsql-general by date

  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