pg_collation
Le catalogue pg_collation
décrit les
collationnements disponibles, qui sont essentiellement des
correspondances entre un nom SQL et des catégories de locales du
système d'exploitation. Voir Section 23.2 pour plus
d'informations.
Tableau 51.13. Colonnes de pg_collation
Nom | Type | Références | Description |
---|---|---|---|
oid | oid | Identifiant de ligne | |
collname | name | Nom du collationnement (unique par schéma et encodage) | |
collnamespace | oid |
| L'OID du schéma contenant ce collationnement |
collowner | oid |
| Propriétaire du collationnement |
collprovider | char | Fournisseur du collationnement : d = le
défaut de la base de données, c = libc,
i = icu | |
collisdeterministic | bool | Est-ce que le collationnement est déterministe ? | |
collencoding | int4 | Encodage pour lequel le collationnement est disponible. -1 s'il fonctionne pour tous les encodages | |
collcollate | name | LC_COLLATE pour ce collationnement | |
collctype | name | LC_CTYPE pour ce collationnement | |
collversion | text | Version spécifique au fournisseur du collationnement. C'est enregistré quand le collationnement est créé, puis vérifié quand il est utilisé, pour détecter les changements dans la définition du collationnement qui pourraient amener une corruption des données. |
Notez que la clé unique de ce catalogue est (collname
,
collencoding
, collnamespace
)
et non pas seulement
(collname
, collnamespace
).
PostgreSQL ignore habituellement tous les
collationnement qui n'ont pas de colonne
collencoding
égale soit à l'encodage de
la base de données en cours ou -1. La création de nouvelles entrées
de même nom qu'une autre entrée dont
collencoding
vaut -1 est interdite. Du
coup, il suffit d'utiliser un nom SQL qualifié du schéma
(schéma
.nom
)
pour identifier un collationnement bien que cela ne soit pas unique
d'après la définition du catalogue. Ce catalogue a été défini ainsi
car initdb le remplit au moment de
l'initialisation de l'instance avec les entrées pour toutes les locales
disponibles sur le système, donc il doit être capable de contenir les
entrées de tous les encodages qui pourraient être utilisés dans
l'instance.
Dans la base de données template0
, il pourrait
être utile de créer les collationnement dont l'encodage ne correspond
pas à l'encodage de la base ded onnées car ils pourraient correspondre
aux encodages de bases de données créées par la suite à partir de ce
modèle de base de données. Cela doit être fait manuellement
actuellement.