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

  • К позавчерашнему падению фейсбука

    Довольно смелое утверждение от технарей, которое я слышал от нескольких разумных людей. Будь у фейсбука второй DNS, внешний по отношению к первому,…

  • OMIGOD — уязвимости Azure Open Management Infrastructure (OMI)

    Блог об информационной безопасности уже некоторое время как не веду, но не могу молчать. Azure устанавливала своего управляющего агента на…

  • До чего техника дошла

    Узнал про существование устройств , которые используют домашнюю проводку в качестве сетевого кабеля. Ну то есть про такое я слышал в своё время в…

  • 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