Dmitry Belyavsky (beldmit) wrote,
Dmitry Belyavsky
beldmit

Category:

Unicode, сортировки, а я маленький такой

Коллега сегодня обнаружил, что при сортировке в уникодной локали PostgreSQL выдаёт записи в таком порядке:

_a
a
_c
d

что несколько контринтуитивно.

Вскрытие показало, что алгоритм сравнения в Unicode довольно хитровывернутый в этом месте. При сортировке в локали базы в итоге символы подчёркивания игнорируются.

Вылечилось это привешиванием COLLATE "C" на искомую колонку, который даёт сравнение, грубо говоря, побайтовое. Но вообще поведение документированное, но неочевидное.

This entry was originally posted at https://beldmit.dreamwidth.org/837883.html. Your comment? (comment count unavailable comments)
Tags: postgresql, компьютерное, программирование, работа
Subscribe

  • Менять невозможно по собственной воле среду обитанья

    Уф. Прошёл квест "смени страну в Google Play", потому что без него не ставилось приложение от T-Mobile. А там это, сладкое слово "халява",…

  • Чешский, продолжение

    Пока у меня долго и нудно идёт билд, напишу про то, как я учу чешский полгода спустя после начала. По словарному запасу по-прежнему самым важным…

  • А нынче годовщина

    18 лет, между прочим. Если со дня начала совместной жизни, то ещё на год больше. Предпоследние несколько лет я на конец мая уезжал в ту или иную…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 6 comments