Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Сортировка записай в PostgreSQL / 5 сообщений из 5, страница 1 из 1
02.09.2005, 14:26
    #33248468
Lec
Lec
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка записай в PostgreSQL
Уважаемый ALL, помогите ламеру.
Очень нужно, чтобы в PostgreSQL (под Windows) работала соритровка украинских записей. Кодировка для базы установлена WIN..
Не работает также ф-я LOWER.
Когда я выбираю записи запросом
select name,surname from users order by surname
сначала идут фамилии на "І", потом на "Є", а потом толко начинается нормальный алфавитный порядок остальных записей.
В документации я находил информацию о том, что можно сменить значение параметра lc_collate, но как только я вставляю
этот параметр в конфигурационный файл база перестает загружаться. Такое ощущение, что PostgreSQL 8.0.3 вообще не знает
такого параметра. Вот фрагмент моего файла postgres.conf:

# - Locale and Formatting -

#datestyle = 'iso, mdy'
#timezone = unknown # actually, defaults to TZ environment setting
#australian_timezones = false
#extra_float_digits = 0 # min -15, max 2
#client_encoding = sql_ascii # actually, defaults to database encoding

# These settings are initialized by initdb -- they might be changed
lc_messages = 'Ukrainian_Ukraine.1251' # locale for system error message strings
lc_monetary = 'Ukrainian_Ukraine.1251' # locale for monetary formatting
lc_numeric = 'Ukrainian_Ukraine.1251' # locale for number formatting
lc_time = 'Ukrainian_Ukraine.1251' # locale for time formatting
#=== вставленное (начало) ======================
#lc_collate = 'uk_UA.KOI8-U'
#=== вставленное (конец)======================

# - Other Defaults -

#explain_pretty_print = true
#dynamic_library_path = '$libdir'



Заранее очень благодарен.
...
Рейтинг: 0 / 0
02.09.2005, 16:41
    #33248998
ilejn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка записай в PostgreSQL
Lec
В документации я находил информацию о том, что можно сменить значение параметра lc_collate

The nature of some locale categories is that their value has to be fixed for the lifetime of a database cluster. That is, once initdb has run, you cannot change them anymore. LC_COLLATE and LC_CTYPE are those categories. They affect the sort order of indexes, so they must be kept fixed, or indexes on text columns will become corrupt. PostgreSQL enforces this by recording the values of LC_COLLATE and LC_CTYPE that are seen by initdb. The server automatically adopts those two values when it is started.
...
Рейтинг: 0 / 0
20.09.2005, 13:45
    #33278801
Ivan Evtuhovich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка записай в PostgreSQL
Я решал эту проблему, хранив все данные в UTF8.

А, вообще, по вопросу локалей можно порыть, особенно в сторону initdb, там кластер надо будет пересоздать, чтобы локаль другая была.
...
Рейтинг: 0 / 0
20.09.2005, 15:33
    #33279177
ilejn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка записай в PostgreSQL
Ivan EvtuhovichЯ решал эту проблему, хранив все данные в UTF8.


utf8 работоспособно под Windows с доп. усилиями для 8.0
и без оных для 8.1 beta.
...
Рейтинг: 0 / 0
20.09.2005, 23:17
    #33280052
kostas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка записай в PostgreSQL
На 8.0.3 UTF8 точно не катит, лично пробовал. С многобайтными кодировками такие вещи, как order by,lower,upper работают НЕ правильно. Можно попробовать функцию convert и сделать что-то типа order by convert(column,'utf','win1251'). Точные параметры процедуры convert не помню.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Сортировка записай в PostgreSQL / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]