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

  • Про Техас, до кучи

    Мне отдельно смешно и грустно, потому что местами Техас за его текущее состояние критикуют часто те же люди, которые недавно хвалили его за всякую…

  • Сохраню для истории

    Оригинал: у меня есть стержень нет на мне лица он назад в реактор не вставляецца Перевод vvagr: rod i'm possessing not a usual hack to…

  • (no subject)

    Минутка политической аналитики "Весёлые старцы". Спецвыпуск про выборы в США. This entry was originally posted at…

  • 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