On Thu, Jan 20, 2005 at 09:44:49PM +0300, Nick Gazaloff wrote:
> Господа!
>
> Я вижу, что заработали lower и upper для русских строк. Но: я привык
> делать базы в UNICODE, а чтобы при этом работали lower/upper, нужно
> делать initdb с локалью ru_RU.UTF-8. Но тогда отваливается использование
> индексов для LIKE.
>
> Получается, что это непреодолимая дилемма? Или lower/upper, или LIKE по
> индексу?
Начиная вроде с 7.4 можно задать индексу opclass varchar_pattern_ops,
тогда он будет использоваться для LIKE и регекспов (рагумеется, только
для LIKE 'string%' и ~ '^string'):
http://borg.postgresql.org/docs/7.4/static/indexes-opclass.html
Неудобно только, что отдельный индекс приходится строить.
Между прочим, регекспы работают в разы быстрее LIKE.
--
Fduch M. Pravking