beldmit: (Программизм)
[personal profile] beldmit
Коллега сегодня обнаружил, что при сортировке в уникодной локали PostgreSQL выдаёт записи в таком порядке:

_a
a
_c
d

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

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

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

Date: 2017-12-06 07:38 am (UTC)
gegmopo4: (Default)
From: [personal profile] gegmopo4
В списке файлов, например, это помогает. Или в списке идентификаторов. Ведь имена с подчёркиванием обычно семантически связаны с именами без подчёркивания. То же относительно дефисов, пробелов, точек.

Profile

beldmit: (Default)
Dmitry Belyavskiy

December 2025

S M T W T F S
 123456
78910111213
14151617181920
2122 2324252627
28293031   

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 29th, 2025 02:22 pm
Powered by Dreamwidth Studios