Le catalogue pg_class liste les tables, et à peu près tout ce qui contient des colonnes ou ressemble de près ou de loin à une table. Cela inclut les index (mais il faut aussi aller voir dans pg_index), les séquences, les vues, les types composites et les tables TOAST ; voir relkind. Par la suite, lorsque l'on parle de « relation », on sous-entend tous ces types d'objets. Les colonnes ne sont pas toutes significatives pour tous les types de relations.
Tableau 44.11. Colonnes de pg_class
Nom | Type | Références | Description |
---|---|---|---|
relname | name | Nom de la table, vue, index, etc. | |
relnamespace | oid | pg_namespace.oid | OID du namespace qui contient la relation. |
reltype | oid | pg_type.oid | OID du type de données qui correspond au type de ligne de la table, s'il y en a un. 0 pour les index qui n'ont pas d'entrée dans pg_type. |
relowner | oid | pg_authid.oid | Propriétaire de la relation. |
relam | oid | pg_am.oid | S'il s'agit d'un index, OID de la méthode d'accès utilisée (B-tree, hash, etc.) |
relfilenode | oid | Nom du fichier disque de la relation ; 0 s'il n'y en a pas. | |
reltablespace | oid | pg_tablespace.oid | Le tablespace dans lequel est stocké la relation. Si 0, il s'agit du tablespace par défaut de la base de données. (Sans intérêt si la relation n'est pas liée à un fichier disque.) |
relpages | int4 | Taille du fichier disque, exprimée en pages (de taille BLCKSZ). Ce n'est qu'une estimation utilisée par le planificateur. Elle est mise à jour par les commandes VACUUM, ANALYZE et quelques commandes DDL comme CREATE INDEX. | |
reltuples | float4 | Nombre de lignes de la table. Ce n'est qu'une estimation utilisée par le planificateur. Elle est mise à jour par les commandes VACUUM, ANALYZE et quelques commandes DDL comme CREATE INDEX. | |
reltoastrelid | oid | pg_class.oid | OID de la table TOAST associée à cette table. 0 s'il n'y en a pas. La table TOAST stocke les attributs de grande taille « hors ligne » dans une table secondaire. |
reltoastidxid | oid | pg_class.oid | Pour une table TOAST, OID de son index. 0 si ce n'est pas une table TOAST. |
relhasindex | bool | Vrai si c'est une table et qu'elle possède (ou possédait encore récemment) quelque index. Ce champ est mis à jour par CREATE INDEX, mais pas réinitialisé immédiatement après DROP INDEX. VACUUM réinitialise relhasindex s'il s'aperçoit que la table n'a pas d'index. | |
relisshared | bool | Vrai si cette table est partagée par toutes les bases de données du cluster. Seuls certains catalogues système (comme pg_database) sont partagés. | |
relistemp | bool | Vrai si cette table est une relation temporaire. Si c'est le cas, seule la session créatrice peut accéder sans danger à son contenu. | |
relkind | char | r = table ordinaire, i = index, S = séquence, v = vue, c = type composite, t = table TOAST. | |
relnatts | int2 | Nombre de colonnes utilisateur dans la relation (sans compter les colonnes système). Il doit y avoir le même nombre d'entrées dans pg_attribute. Voir aussi pg_attribute.attnum. | |
relchecks | int2 | Nombre de contraintes de vérification (CHECK) sur la table ; voir le catalogue pg_constraint. | |
relhasoids | bool | Vrai si un OID est engendré pour chaque ligne de la relation. | |
relhaspkey | bool | Vrai si la table a (ou a eu) une clé primaire. | |
relhasrules | bool | Vrai si la table contient (ou a contenu) des règles ; voir le catalogue pg_rewrite. | |
relhastriggers | bool | Vrai si la table a (ou a eu) des triggers ; voir le catalogue pg_trigger | |
relhassubclass | bool | Vrai si au moins une table hérite ou a hérité de la table considérée. | |
relfrozenxid | xid | Tous les ID de transaction avant celui-ci ont été remplacés par un ID de transaction permanent (« frozen »). Ceci est utilisé pour déterminer si la table doit être nettoyée (VACUUM) pour éviter un bouclage des ID de transaction (ID wraparound) ou pour compacter pg_clog. 0 (InvalidTransactionId) si la relation n'est pas une table. | |
relacl | aclitem[] | Droits d'accès ; voir GRANT et REVOKE pour plus de détails. | |
reloptions | text[] | Options spécifiques de la méthode d'accès, représentées par des chaînes du type « motclé=valeur » |