50.12. pg_collation#
50.12. pg_collation
#
Каталог pg_collation
описывает доступные правила сортировки, которые по сути являются отображениями от SQL имени к категориям локали операционной системы.
См. Раздел 22.2 для получения дополнительной информации.
Таблица 50.12. pg_collation
Колонки
Тип столбца Описание |
---|
Идентификатор строки |
Название правила сортировки (уникальное для каждого пространства имен и кодировки) |
OID пространства имен, которое содержит это правило сортировки. |
Владелец правила сортировки |
Провайдер правила сортировки: |
Является ли правило сортировки детерминированным? |
Кодировка, для которой применимо правило сортировки, или -1, если оно работает для любой кодировки |
|
|
ICU идентификатор локали для данного объекта правила сортировки |
Правила сортировки ICU для этого объекта сортировки |
Версия правила сортировки, связанная с провайдером. Она записывается при создании правила сортировки, а затем проверяется при использовании, чтобы обнаружить изменения в определении правила сортировки, которые могут привести к повреждению данных. |
Обратите внимание, что уникальный ключ в этом каталоге - (collname
,
collencoding
, collnamespace
), а не только
(collname
, collnamespace
).
Tantor BE обычно игнорирует все правила
сортировки, у которых collencoding
не равно
кодировке текущей базы данных или -1, и запрещено создание новых записей
с тем же именем, что и запись с collencoding
= -1.
Поэтому достаточно использовать полное SQL-имя
(schema
.name
) для идентификации правила сортировки,
хотя это не уникально согласно определению каталога.
Причина такого определения каталога заключается в том, что
initdb заполняет его при инициализации кластера
записями для всех доступных на системе локалей, поэтому он должен быть способен
содержать записи для всех кодировок, которые могут когда-либо использоваться в кластере.
В базе данных template0
может быть полезно создать правила сортировки, кодировка которых не совпадает с кодировкой базы данных, поскольку они могут совпадать с кодировками баз данных, созданных позднее из template0
. В настоящее время это придется делать вручную.