Re: IN not handled very well?

From: Ben <bench(at)silentmedia(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-performance(at)postgresql(dot)org
Subject: Re: IN not handled very well?
Date: 2006-09-24 18:12:25
Message-ID: 043C3275-F9CF-4B9B-AF9F-C9D0B35493BC@silentmedia.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Ah, so I do. Thanks, that helps an awful lot.

But the plan is still twice as expensive as when I put in the static
values. Is it just unreasonable to expect the planner to see that
there aren't many rows in the subselect, so to use the bitmap scans
after all?

On Sep 24, 2006, at 10:57 AM, Tom Lane wrote:

> Ben <bench(at)silentmedia(dot)com> writes:
>> -> Hash IN Join (cost=51.67..31794.72
>> rows=218 width=4)
>> Hash Cond: (("outer".puid)::text =
>> "inner".name)
>> -> Seq Scan on puid
>> (cost=0.00..23495.21 rows=1099421 width=44)
>
>> -> Bitmap Heap Scan on puid
>> (cost=20.03..59.52 rows=10 width=4)
>> Recheck Cond: ((puid =
>> 'f68dcf86-992c-2e4a-21fb-2fc8c56edfeb'::bpchar) OR (puid =
>> '7716dbcf-56ab-623b-ab33-3b2e67a0727c'::bpchar) OR (puid =
>
>
> Apparently you've got a datatype mismatch: name is text while puid is
> char(N). The comparisons to name can't be converted into indexscans
> on puid because the semantics aren't the same for text and char
> comparisons.
>
> regards, tom lane

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Kjell Tore Fossbakk 2006-09-25 08:30:33 Multi-processor question
Previous Message Tom Lane 2006-09-24 17:57:54 Re: IN not handled very well?