Русификация функций upper и lower

dEn

Guest
Русификация функций upper и lower

Видел что этот вопрос уже задавался здесь, но остался без ответа. Существует ли простой способ русификации функций upper и lower, то есть без написания своих функций на plpgsql или другом языке?
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
существует. надо локаль нормально настроить. и все само заработает.
 

dEn

Guest
У меня в базе хранится всё в win1251 и выдаваться должно так же поэтому я выставил LC_COLLATE и LC_CTYPE в WIN, однако на lower и upper это не повлияло. Подскажите что не так.
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Ээээ... Сложно так сразу сказать...
<ol>
<li>откуда взялась локаль 1251?
<li>почему только LC_COLLATE и LC_CTYPE? (я в локалях не силен, но меня это смущает)
<li>А сортировка по русским буквам работает?
<li>А Postgres знает, что в базе все лежит в 1251?
</ol>
Я сделал у себя так: создал локаль ru_RU.CP1251 и прописал юзеру postgres в .bash_profile:
LANG=ru_RU.CP1251
export LANG
Системную локаль (во избежание геморроя) я оставил 'C'.
Все работает, специально проверил upper() и lower() на слове из трех букв. ;-)
 

dEn

Guest
Спасибо за ответ, у меня тут всё работает на BSDI и с русским он не
силён, так что видимо всё таки напишу свою функцию up и lo, и всё.
А сортировки у меня работали и без use-locale, а вот Like, upper и
lower нет :(

Денис.
 
Сверху