Patrik Kudo <kudo@partitur.se> writes:
> Thanks for your respons, but I'm afraid it didn't help. I've succeeded
> with indexing my table using functional indices, but the problem is that
> the index I create won't work with my query.
Works for me:
test71=# create table person (last_name text);
CREATE
test71=# create index person_lower_lname_idx on person (lower(last_name));
CREATE
test71=# explain select * from person where lower(last_name) like 'kud%';
NOTICE: QUERY PLAN:
Index Scan using person_lower_lname_idx on person (cost=0.00..8.16 rows=10 width=12)
EXPLAIN
The difference is probably a locale problem: if you aren't in C locale
then the index LIKE optimization is disabled because it doesn't work
reliably. See the list archives for more info.
regards, tom lane