Как стать автором
Обновить

Комментарии 16

Продолжая автора:
О сколько нам открытий чудных...
.
Особенно порадовала сортировка ss:
что первые четыре буквы первой строки — «Stras», затем «Straß», затем опять «Stras». Такого порядка нельзя достичь, если каждой букве сопоставлять некоторый код.

Интересно, а как в других СУБД сортируется такое?
Хотелось бы услышать мнение smagen по этому вопросу. Как PostgreSQL сортирует «Straß» и Ё в выражениях с ORDER BY? Заранее спасибо за ответ.
PostgreSQL полностью полагается на функцию сравнения локали ОС. При этом, эта функция сравнения может вести себя очень не хорошо. Например, не факт, что строки с одинаковыми префиксами отсортируются рядом. Чтобы это обойти придумали всякие text_pattern_ops. Недавно ещё выяснилось, что strxfrm может не работать правильно. К этому тоже пришлось приспособиться.
Одна из идей как с этим жить – это перейти на libicu как более предсказуемую вещь. Мы в своей ветке PostgresPro её подключили. Надеюсь, со временем, убедим и community.
Да libicu — правильный подход получить Unicode независимо от операционной системы. Но уж больно толстый! Одним неверным движением, просто за счет 3х dll-ек, ты добавляешь 15МБ добра.
Толстый, но 15МБ для СУБД – это не так уж и много.
Конечно есть. libicu работает примерно с одинаковой скоростью везде, а локали ОС – с очень разными скоростями. Например, в Linux'ах локаль примерно с той же скоростью работает, что и libicu, а на Mac OS X – в разы медленнее. Такого, чтобы libicu работала заметно медленнее, чем локаль ОС, пока не замечали.
Есть мнение, что при сортировке букву Ё следует считать равной Е, потому что очень часто буква Е на самом деле означает Ё.
Я это мнение понимаю, но как сторонник буквы Ё не соглашаюсь.
http://yomaker.ru/pismoMONRF.htm
Вот простой вопрос есть: установил заново Caché, буду работать с русским (Ё нужна), надо ли что-то сразу переключать в сортировках? И если да — в скольки местах и на что?
все зависит от региональных настроек операционной системы, по ним установщик определяет какую локаль активировать.
поправить нужно настройках локализации. Нужно скопировать локаль rusw в yruw или rus8 в yru8 для 8-битных систем. И в скопированной локали уже можно делать изменения.

сохранить. и установить новую локаль

После этого можно изменить сортировку по умолчанию для базы данных

интересное имя у базы данных на скриншоте :-)
Тоже заметил — особенно хорошо в сочетании с подписью в поле ввода )
Спасибо!
Еще парочка вопросов:
Cyrillic 4 брать или Cyrillic 4 string брать для глобалов?
Что такое Cyrillic 1?
Украинцам надо менять все сразу на Ukranian 1 или можно пользоваться Caché Standard?
сортировку брать со string или нет зависит от требований, как указано в статье, отличие только в сортировки чисел.
Cyrillic 1 — думаю эта сортировка уже порядком устарела
Для украины Cache standard так же сортиовать будет не верно. Так что лучше выбрать Ukranian 1
сортировку брать со string или нет зависит от требований, как указано в статье, отличие только в сортировки чисел.

Да, правда, невнимательно читал.
У каждой сортировки есть парная, в которой числа сортируются как строки. Имя такой парной сортировки получается добавлением " string" к имени оригинальной сортировки:

Интересно, зачем такое может быть нужно?
Успокаивает, что если "что-то пошло не так", можно всегда попробовать другую сортировку. (да, при этом потребуется скопировать глобал целиком, а, возможно, и два раза скопировать, если нужно изменить сортировку в существующем глобале).
Зарегистрируйтесь на Хабре, чтобы оставить комментарий