| From: | John R Pierce <pierce(at)hogranch(dot)com> |
|---|---|
| To: | Radu Ilies <ilies(dot)radu(at)gmail(dot)com> |
| Cc: | pgsql-bugs(at)postgresql(dot)org |
| Subject: | Re: BUG #5737: LIKE and ILIKE strange behaviour |
| Date: | 2010-11-01 04:00:50 |
| Message-ID: | 4CCE3B72.2090800@hogranch.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-bugs |
On 10/31/10 12:28 PM, Radu Ilies wrote:
> id, char[25]
> name, text
>
> The first row is:
>
> id='radu'
> name='Radu Ilies'
>
> The following queries does not find any result (fail):
> SELECT * FROM my_table WHERE id LIKE 'radu'
> SELECT * FROM my_table WHERE id ILIKE 'radu'
>
'radu'::char[25] ==> 'radu_____________________' (21 spaces).
the = equality coerces the 'radu'::text to 'radu
'::char[25] before doing the comparision.
LIKE/ILIKE doesn't think 'radu_____________________' is LIKE 'radu'
use TEXT for character types unless you have a very specific requirement
to limit them to a maximum length.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | spche | 2010-11-01 10:18:02 | BUG #5738: btree index search bug |
| Previous Message | Jon Nelson | 2010-11-01 01:48:32 | Re: [PERFORM] typoed column name, but postgres didn't grump |