Re: upgrade 8.1.4 -> latest, sort order subquery

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Richard Huxton <dev(at)archonet(dot)com>
Cc: jef peeraer <jef(dot)peeraer(at)telenet(dot)be>, pgsql-general(at)postgresql(dot)org
Subject: Re: upgrade 8.1.4 -> latest, sort order subquery
Date: 2007-06-26 21:00:25
Message-ID: 28622.1182891625@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Richard Huxton <dev(at)archonet(dot)com> writes:
> jef peeraer wrote:
>> 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).

Yeah, that IN-clause will in fact be turned into a join. EXPLAIN would
give more info about what's happening, but I suspect the planner chose
to do the join via mergejoin, which would sort the inputs by the join
columns ...

regards, tom lane

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Rafal Pietrak 2007-06-26 21:11:33 Re: a JOIN on same table, but 'slided over'
Previous Message Tom Lane 2007-06-26 20:46:52 Re: escaped rolenames in pg_has_role