Re: Can someone explain the problem with this select
От | Richard Ray |
---|---|
Тема | Re: Can someone explain the problem with this select |
Дата | |
Msg-id | Pine.LNX.4.64.0612051519450.20963@rray.drdc.mstc.ms.gov обсуждение исходный текст |
Ответ на | Re: Can someone explain the problem with this select (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-sql |
I've been foolin with this for a couple of days Sometimes you just have to ask Thanks gentlemen On Tue, 5 Dec 2006, Tom Lane wrote: > Richard Ray <rray@mstc.state.ms.us> writes: >> dcc=# EXPLAIN ANALYZE select * from documents left outer join comments on >> (documents.doc_num = comments.doc_num) where documents.doc_num in (select >> doc_num from documents limit 10); >> [ is slow ] > > This isn't your fault, it's an optimizer limitation: PG < 8.2 can't > reorder outer joins relative to regular joins, and the IN with a > sub-select is a kind of regular join. So it's forming the whole > outer-join result and then joining to the sub-select :-( > > This is fixed in 8.2, released today, so perhaps upgrading is the > thing for you to do. Alternatively, you can contort the query to > get the IN restriction inside the outer join: > > select * from > (select * from documents > where documents.doc_num in (select doc_num from documents limit 10)) ss > left outer join comments on (ss.doc_num = comments.doc_num); > > regards, tom lane >
В списке pgsql-sql по дате отправления: