pg_attribute
#
Le catalogue pg_attribute
stocke les informations
concernant les colonnes des tables. Il y a exactement une ligne de
pg_attribute
par colonne de table de
la base de données. (Il y a aussi des attributs pour les index et, en fait,
tous les objets qui possèdent des entrées dans
pg_class
.)
Le terme attribut, équivalent à colonne, est utilisé pour des raisons historiques.
Tableau 53.7. Colonnes de pg_attribute
Type Description |
---|
La table à laquelle appartient la colonne |
Le nom de la colonne |
Le type de données de la colonne (zéro pour une colonne supprimée) |
Une copie de |
Le numéro de la colonne. La numérotation des colonnes ordinaires
démarre à 1. Les colonnes système, comme les
|
Toujours -1 sur disque, mais peut être mis à jour lorsque la ligne est chargée en mémoire, pour mettre en cache l'emplacement de l'attribut dans la ligne. |
Stocke des données spécifiques au type
de données précisé lors de la création de la table (par exemple, la
taille maximale d'une colonne de type |
Nombre de dimensions, si la colonne est de type tableau, sinon 0. (Pour l'instant, le nombre de dimensions des tableaux n'est pas contrôlé, donc une valeur autre que 0 indique que « c'est un tableau ».) |
Une copie de |
Une copie de |
Contient normalement une copie de
|
La méthode de compression actuelle de la colonne. Habituellement,
cette colonne vaut |
Indique une contrainte de non-nullité de colonne. Il est possible de changer cette colonne pour activer ou désactiver cette contrainte. |
Cette colonne a une expression par défaut ou une expression générée,
auquel cas il y aura un enregistrement correspondant dans le catalogue
|
Cette colonne a une valeur qui est utilisée quand la colonne est
complètement manquante de la ligne, ce qui arrive quand une colonne est
ajoutée avec une valeur par défaut et non volatile (contrainte
|
Si vide ( |
Si c'est un octet zéro ( |
Indique que la colonne a été supprimée et n'est plus valide. Une colonne supprimée est toujours présente physiquement dans la table, mais elle est ignorée par l'analyseur de requête et ne peut être accédée en SQL. |
La colonne est définie localement dans la relation. Une colonne peut être simultanément définie localement et héritée. |
Nombre d'ancêtres directs de la colonne. Une colonne qui a au moins un ancêtre ne peut être ni supprimée ni renommée. |
|
Le collationnement défini de la colonne, ou zéro si la colonne n'est pas un type de données collationnable. |
Droits d'accès niveau colonne, s'il y en a qui ont été spécifiquement accordés à cette colonne |
Options au niveau colonne, en tant que chaînes du type « motclé=valeur » |
Options du wrapper de données distances, au niveau colonne, en tant que chaînes du type « keyword=value » |
Cette colonne a un tableau à un élément contenant la valeur utilisée
quand la colonne est complètement manquante de la ligne, comme cela
peut survenir quand la colonne est ajoutée avec une valeur par défaut
( |
Dans l'entrée pg_attribute
d'une colonne
supprimée, atttypid
est réinitialisée à
0 mais attlen
et les autres champs copiés à
partir de pg_type
sont toujours valides. Cet arrangement est
nécessaire pour s'adapter à la situation où le type de données de la
colonne supprimée a été ensuite supprimé et qu'il n'existe donc plus de
ligne pg_type
. attlen
et les
autres champs peuvent être utilisés pour interpréter le contenu
d'une ligne de la table.