indexes for ILIKE

Started by Ilja Golshteinabout 20 years ago3 messagesgeneral
Jump to latest
#1Ilja Golshtein
ilejn@yandex.ru

Hello!

Is there any way to use an index to pick up text field
start from a substring?
I need to ignore case of characters and encoding I use is UTF-8.

I am aware of text_pattern_ops and stuff, though
FAQ says ILIKE does not use indexes.

Thanks.

--
Best regards
Ilja Golshtein

#2Martijn van Oosterhout
kleptog@svana.org
In reply to: Ilja Golshtein (#1)
Re: indexes for ILIKE

On Mon, Feb 13, 2006 at 03:33:34PM +0300, Ilja Golshtein wrote:

Hello!

Is there any way to use an index to pick up text field
start from a substring?
I need to ignore case of characters and encoding I use is UTF-8.

I am aware of text_pattern_ops and stuff, though
FAQ says ILIKE does not use indexes.

You at the very least would need a text_pattern_ops index on
lower(colname). At that, I'm not sure whether it would work or whether
you need to rephrase your query as:

lower(a) like lower(b)

Hope this helps,
--
Martijn van Oosterhout <kleptog@svana.org> http://svana.org/kleptog/

Show quoted text

Patent. n. Genius is 5% inspiration and 95% perspiration. A patent is a
tool for doing 5% of the work and then sitting around waiting for someone
else to do the other 95% so you can sue them.

#3Brendan Duddridge
brendan@clickspace.com
In reply to: Martijn van Oosterhout (#2)
Re: indexes for ILIKE

We tried this recently. You have to use lower(a) like lower(b) for
the index to work.

____________________________________________________________________
Brendan Duddridge | CTO | 403-277-5591 x24 | brendan@clickspace.com

ClickSpace Interactive Inc.
Suite L100, 239 - 10th Ave. SE
Calgary, AB T2G 0V9

http://www.clickspace.com

On Feb 13, 2006, at 5:42 AM, Martijn van Oosterhout wrote:

Show quoted text

On Mon, Feb 13, 2006 at 03:33:34PM +0300, Ilja Golshtein wrote:

Hello!

Is there any way to use an index to pick up text field
start from a substring?
I need to ignore case of characters and encoding I use is UTF-8.

I am aware of text_pattern_ops and stuff, though
FAQ says ILIKE does not use indexes.

You at the very least would need a text_pattern_ops index on
lower(colname). At that, I'm not sure whether it would work or whether
you need to rephrase your query as:

lower(a) like lower(b)

Hope this helps,
--
Martijn van Oosterhout <kleptog@svana.org> http://svana.org/
kleptog/

Patent. n. Genius is 5% inspiration and 95% perspiration. A patent
is a
tool for doing 5% of the work and then sitting around waiting for
someone
else to do the other 95% so you can sue them.

Attachments:

smime.p7sapplication/pkcs7-signature; name=smime.p7sDownload