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
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 |