Re: Pushing IN (subquery) down through UNION ALL?

From: Dave Johansen <davejohansen(at)gmail(dot)com>
To: pgsql-performance(at)postgresql(dot)org
Subject: Re: Pushing IN (subquery) down through UNION ALL?
Date: 2011-02-24 19:56:44
Message-ID: AANLkTi=Q2a39ACqezdk1crnkYU47=ewXicGjXbXt1Eu0@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

On Thu, Feb 24, 2011 at 12:33 PM, Vik Reykja <vikreykja(at)gmail(dot)com> wrote:

> On Thu, Feb 24, 2011 at 16:14, Dave Johansen <davejohansen(at)gmail(dot)com>wrote:
>
>> You'll notice that the subquery version is doing the full join and then
>> the filtering, but the explicitly listed version pushing the filtering into
>> the plan before the join. Is there a way to make the subquery version
>> perform the same optimization?
>>
>
> EXPLAIN ANALYZE SELECT * FROM addressesall WHERE id = ANY (array(SELECT id
> FROM users WHERE name='A'));
>
> (Tested on 9.0.3)
>

I just tested that on 8.3.3 and it performed quickly like I expected the
other query to, so that did the trick.
Thanks a ton,
Dave

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Vik Reykja 2011-02-24 19:59:38 Re: Pushing IN (subquery) down through UNION ALL?
Previous Message Dave Crooke 2011-02-24 19:55:31 Picking out the most recent row using a time stamp column