The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Microsoft поглотил компанию Citus, развивающую СУБД на базе ..."
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Заметили полезную информацию ? Пожалуйста добавьте в FAQ на WIKI.
. "Microsoft поглотил компанию Citus, развивающую СУБД на базе ..." +2 +/
Сообщение от KonstantinB (ok), 26-Янв-19, 23:25 
Все несколько не так. С буквами это просто пример. Проблема куда серьезнее, чем чудные буквы.

Порядок сортировки в Unicode определяется Collation-ами: для любого символа известно, "больше" или "меньше" он другого, то есть они все упорядочены. На основе этого строятся индексы (тот же btree).

У юникодных collation-ов есть версии, и делать утверждения о каком-то порядке символов можно только в рамках конкретной версии. Поменялась версия - поменялся порядок.

Репликация в постгресе физическая, байтики копируются один в один, в том числе и внутреннее представление индекса. Соответственно, помимо того, какой используется collation, надо хранить и его версию (и иметь возможность указать библиотеке, какая нам версия нужна), иначе развалятся алгоритмы, для которых важна инвариантность порядка сортировки в collation (тот же merge join).

В этом месте передаем пламенный привет glibc, в котором на версионирование collation-ов положен большой болт. Второй пламенный привет передается BSD-шникам, у которых utf-ные collation-ы поломаны испокон веков и won't fix.

Правильное решение тут одно - обходить [g]libc-шные strcoll* за сто миль (они максимум для чего пригодны, это сделать | sort в шелле, но уж никак не для СУБД), и использовать ICU. Это в проекте уже лет 10, но ни у кого не доходят руки (там свои проблемы, в частности, внутренний utf-16).

А microsoft тут, да, точно ни в чем не виноват. :-)

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Microsoft поглотил компанию Citus, развивающую СУБД на базе ..., opennews, 25-Янв-19, 11:55  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру