From: | "Magnus Hagander" <mha(at)sollentuna(dot)net> |
---|---|
To: | "Merlin Moncure" <merlin(dot)moncure(at)rcsonline(dot)com>, <pgsql-hackers(at)postgresql(dot)org> |
Cc: | <pgsql-hackers-win32(at)postgresql(dot)org> |
Subject: | Re: another optimizer bug? |
Date: | 2004-05-25 21:24:43 |
Message-ID: | 6BCB9D8A16AC4241919521715F4D8BCE34BB03@algol.sollentuna.se |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers pgsql-hackers-win32 |
I've spoken to Merlin off-list and confirmed this issue will be fixed in
the locale fix I'll post shortly. The reason being that the backend
thought it was in a non-C locale (the window system default locale which
is specifically *not* C), and in non-C locale LIKE is not indexable.
//Magnus
>-----Original Message-----
>From: Merlin Moncure [mailto:merlin(dot)moncure(at)rcsonline(dot)com]
>Sent: den 25 maj 2004 22:53
>To: pgsql-hackers(at)postgresql(dot)org
>Cc: pgsql-hackers-win32(at)postgresql(dot)org
>Subject: [pgsql-hackers-win32] another optimizer bug?
>
>
>Following example is with latest anonymous cvs of 7.5.
>
>I can't get LIKE to use an index even with seq_scan = off. I'm using
>the default locale and hchassis.vin_no is defined as char(17). The
>hchassis table has about 250k rows in it. The non aggregate versions of
>the selects have the same results WRT the optimizer. Varying the VIN
>makes no difference.
>
>Simple form:
>select a from b where a like 'k%';
>
>Am I crazy? This is a query I would normally expect to always use the
>index.
>
>Merlin
>
>Log: [first two queries with like, second two with =]
>cpc=# explain select count(vin_no) from hchassis where vin_no like
>'2FTZX08W8WCA21580%';
> QUERY PLAN
>-------------------------------------------------------------------
> Aggregate (cost=19576.22..19576.22 rows=1 width=21)
> -> Seq Scan on hchassis (cost=0.00..19576.21 rows=1 width=21)
> Filter: (vin_no ~~ '2FTZX08W8WCA21580%'::text)
>(3 rows)
>
>cpc=# select count(vin_no) from hchassis where vin_no like
>'2FTZX08W8WCA21580%';
> count
>-------
> 1
>(1 row)
>
>cpc=#
>cpc=# explain select count(vin_no) from hchassis where vin_no =
>'2FTZX08W8WCA21580';
> QUERY PLAN
>---------------------------------------------------------------
>---------
>-------------------
> Aggregate (cost=5.61..5.61 rows=1 width=21)
> -> Index Scan using hchassis_vin_no_idx on hchassis
>(cost=0.00..5.60 rows=1 width=21)
> Index Cond: (vin_no = '2FTZX08W8WCA21580'::bpchar)
>(3 rows)
>
> count
>-------
> 1
>(1 row)
>
>
>
>---------------------------(end of
>broadcast)---------------------------
>TIP 6: Have you searched our list archives?
>
> http://archives.postgresql.org
>
From | Date | Subject | |
---|---|---|---|
Next Message | Gaetano Mendola | 2004-05-25 21:54:55 | Re: Optimizer bug?? |
Previous Message | Merlin Moncure | 2004-05-25 20:53:11 | another optimizer bug? |
From | Date | Subject | |
---|---|---|---|
Next Message | Douglas Wilson | 2004-05-26 06:08:00 | Build problem |
Previous Message | Merlin Moncure | 2004-05-25 20:53:11 | another optimizer bug? |