|
PostgreSQL 7.3 + кириллица
|
|||
---|---|---|---|
#18+
Есть проблема. pgsql собран с --enable-multibyte --with-mb=windows-1251 База в локали WIN. psql -l -U pgsql List of databases Name | Owner | Encoding ------------+-------+---------- filesearch | pgsql | WIN template0 | pgsql | WIN template1 | pgsql | WIN Собственно, в базе filesearch есть записи в кириллице. При попытке выбрать, данные отображаются нормально, но при поиске все символы регистрозависимые. Подскажите, пожалуйста, как сделать регистронезависимый поиск в кириллице? Система - FreeBSD 4.9, PostgreSQL 7.3.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2004, 13:58 |
|
PostgreSQL 7.3 + кириллица
|
|||
---|---|---|---|
#18+
Всё, разобрался, уже не актуально, спасибо :) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2004, 15:09 |
|
PostgreSQL 7.3 + кириллица
|
|||
---|---|---|---|
#18+
Подскажи, как разобрался ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2004, 01:14 |
|
PostgreSQL 7.3 + кириллица
|
|||
---|---|---|---|
#18+
Просто корректно настроил локаль в системе и сделал pw usermod pgsql -L russian После этого корректно заработала кириллица :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2004, 10:29 |
|
PostgreSQL 7.3 + кириллица
|
|||
---|---|---|---|
#18+
А можно поподробнее? А тоя только начал осваивать Postgres и то - под Windows через Cygwin. Вот Список прирложений, что у меня лежат в директории Bin (я пользуюсь коммерческой сборкой Command Promt ибо открытую не смог корректно поставить): basename.exe bash.exe bzip2.exe cat.exe chmod.exe chown.exe cp.exe cygrunsrv.exe exece.exe grep.exe ipc-daemon.exe kill.exe less.exe ln.exe ls.exe mkdir.exe mkgroup.exe mkpasswd.exe mount.exe pg_dump.exe pg_dumpall.exe pg_dumplo.exe pg_id.exe pg_restore.exe pgsqltray.exe pgsqltray_kill.exe postgres.exe ps.exe psql.exe rm.exe sed.exe sh.exe stty.exe tar.exe umount.exe vacuumlo.exe Можешь в этой ситуации что-то подсказать? Какие команды из консоли настраивают локаль? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2004, 15:21 |
|
PostgreSQL 7.3 + кириллица
|
|||
---|---|---|---|
#18+
Столкнулся я тоже с проблемой сортировки русских слов без учета регистра. Pgsql 7.3.4 под Rad Hat Linux 8.0, кодировка UNICODE. Поиск по форуму и последующие попытки настроить локаль к результату не привели. А решать проблему нужно было, и быстро. Пришлось сделать "по-студенчески" - в лоб. Для этого написал 2 user-defined functions: lowChar(varchar) RETURNS varchar; и lowStr(varchar) RETURNS varchar; Первая представляет собой ветвление вида CASE $1 WHEN 'А' THEN 'а', т.е. вручную перебирает все символы русского языка (впридачу несколько символов из украинского - тоже было нужно). А вторая - последовательно "прогоняет" каждый символ из аргумента через первую функцию. А потом уже делается сортировка: ORDER BY lowStr(label). Данные сравнения производительности: 162 строки, Windows, PgSQL 7.3.4 на CygWin используя встроенную функцию lower() - запрос выполняется 10 ms используя предлагаемую функцию lowStr() - запрос выполняется 70 ms. Решение, естественно, не так красиво, как если нормально настроить локаль, но если не получается, то можно и так. Если интересно, могу выложить полный код функций. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2004, 18:16 |
|
PostgreSQL 7.3 + кириллица
|
|||
---|---|---|---|
#18+
-- "ВЕРХНИЙ" регистр киррилицы CREATE OR REPLACE FUNCTION w_upper(text) RETURNS text IMMUTABLE AS ' DECLARE BEGIN RETURN TRANSLATE($1, ''abcdefghijklmnopqrstuvwxyzёабвгдежзийклмнопрстуфхцчшщъыьэюяіїє'', ''ABCDEFGHIJKLMNOPQRSTUVWXYZЁАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯІЇЄ''); END; ' LANGUAGE 'plpgsql'; -- "нижний" регистр киррилицы CREATE OR REPLACE FUNCTION w_lower(text) RETURNS text IMMUTABLE AS ' DECLARE BEGIN RETURN TRANSLATE($1, ''ABCDEFGHIJKLMNOPQRSTUVWXYZЁАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯІЇЄ'', ''abcdefghijklmnopqrstuvwxyzёабвгдежзийклмнопрстуфхцчшщъыьэюяіїє''); END; ' LANGUAGE 'plpgsql'; ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2004, 20:18 |
|
|
start [/forum/search_topic.php?author=freecozoid&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
get settings: |
10ms |
get forum list: |
15ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 1161ms |
total: | 1362ms |
0 / 0 |