PostgreSQL + сортировка русских букв

CAHEK
Дата: 14.10.2003 15:04:59
Люди добрые, помогите пожалуйста. Кто-нибудь ставил PostgreSQL 7.3.4 из исходников на RedHat 8.0 ??? В RedHat поставил русскую локаль с LANG=ru_RU.KOI8-R, скомпилировал Postgres c ./configure --enable-locale --enable-multibyte=KOI8, но никакого эффекта. Вначале идет буква "б", а "а" после "ш". Хотя в консоли сортировка русских символов идет нормально. Подскажите в чем могут быть грабли и кто сталкивался с таким?
CAHEK
Дата: 14.10.2003 15:14:39
В дополнение к сказанному: После установки соответственно из учетной записи postgres делаю initdb -E KOI8 -D /usr/local/pgsql/data
Shweik
Дата: 14.10.2003 22:24:25
Может это несовсем в тему но наведет на правильное решение:\r
/topic/33658&hl=cp1251\r
/topic/34468&hl=cp1251\r
Вообще скажу сразу что меньше всего проблем возникает если придерживаешься КОИ8-R Так что незабывай делать createdb c ключом -E KOI8\r
Кстати консоль - это как я понял psql ?\r
А что используется как не-консольный клиент?\r
Может там глюк?
CAHEK
Дата: 15.10.2003 10:28:35
Я долго бился и проблему решил: на Windows клиентах в ODBC драйверах в настройках указал SET CLIENT_ENCODING='WIN1251' и сразу правильно заработала сортировка русских строк. (база создана в KOI8). Меня теперь интересует КАК и ГДЕ подобное настроить на самом серваке, чтобы в каждом Windows-клиенте не прописывать эту настройку. Утомительно... если в сети предприятия от 100 компов.
Shweik
Дата: 15.10.2003 11:51:38
К сожалению я подобную ситуацию вынужден был решать средствами клиента
(просто завел секцию [pginit] в Ini файле клиента)
В доке пишут так:
>ALTER USER username SET variable { TO | = } { value | DEFAULT }
>те ALTER USER username RESET variable
>variable
>value
> Set this user's session default for the specified configuration variable to the given >value.
..................
Вот и дальше советуют читать про комманду SET.
Но комманда
ALTER user sasha SET client_encoding to WIN хотя и выполняется без
ошибок - эффекта не дает. При коннекте всеравно устанавливается
CLIENT_ENCODING=DEFAULT_ENCODING 8(
CAHEK
Дата: 15.10.2003 13:33:40
Может универсальным решением будет установка переменной client_encoding в postgresql.conf ?
Shweik
Дата: 15.10.2003 14:51:49
>Может универсальным решением будет установка переменной client_encoding в >postgresql.conf ?
За неимением лучшего да.
Хотя ясно что прописать установки переменных в профиль каждого пользователя куда логичнее! Переменных то много и для одних сессий/пользователей они подходят а для других может и нет - по этому
в конфиге прописывают то что подходит большинству - а остальные подстраивают окружение под себя. Я уже давно хочу задать вопрос по этому
поводу в постгресовский mail-list только вот руки недоходют 8))