"Tom Lane" <[EMAIL PROTECTED]> writes:

> Gregory Stark <[EMAIL PROTECTED]> writes:
>> "Tom Lane" <[EMAIL PROTECTED]> writes:
>>> I already demonstrated that we could.
>
>> We seem to be talking past each other. The plan you showed is analogous but
>> using a plain old index scan.
>
> That's only because that seemed like the appropriate thing for the given
> case's statistics.  [ fiddles with example... ]
>
> regression=# explain select * from tenk1 a where thousand in (select f1 from 
> int4_tbl b);
>                                         QUERY PLAN                            
>             
> ------------------------------------------------------------------------------------------
>  Nested Loop  (cost=5.39..198.81 rows=51 width=244)
>    ->  HashAggregate  (cost=1.06..1.11 rows=5 width=4)
>          ->  Seq Scan on int4_tbl b  (cost=0.00..1.05 rows=5 width=4)
>    ->  Bitmap Heap Scan on tenk1 a  (cost=4.33..39.41 rows=10 width=244)
>          Recheck Cond: (a.thousand = b.f1)
>          ->  Bitmap Index Scan on tenk1_thous_tenthous  (cost=0.00..4.33 
> rows=10 width=0)
>                Index Cond: (a.thousand = b.f1)
> (7 rows)

Sure, but that's still re-executing the bitmap index scan 51 times -- possibly
having to fetch the same records off disk repeatedly. Avoiding that is kind of
the point behind the hash join plan after all.

-- 
  Gregory Stark
  EnterpriseDB          http://www.enterprisedb.com
  Ask me about EnterpriseDB's RemoteDBA services!

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to