49.26. pg_index

Le catalogue pg_index contient une partie des informations concernant les index. Le reste se trouve pour l'essentiel dans pg_class.

Tableau 49.26. Colonnes de pg_index

Nom Type Références Description
indexrelid oid pg_class.oid OID de l'entrée dans pg_class de l'index
indrelid oid pg_class.oid OID de l'entrée dans pg_class de la table sur laquelle porte l'index
indnatts int2   Nombre de colonnes de l'index (duplique pg_class.relnatts)
indisunique bool   Vrai s'il s'agit d'un index d'unicité
indisprimary bool   Vrai s'il s'agit de l'index de clé primaire de la table (indisunique doit toujours être vrai quand ce champ l'est.)
indisexclusion bool   Vrai s'il s'agit de l'index supportant une contrainte d'exclusion
indimmediate bool   Si vrai, la vérification de l'unicité est forcée immédiatement lors de l'insertion (inutile si indisunique ne vaut pas true)
indisclustered bool   Vrai si la table a été réorganisée en fonction de l'index
indisvalid bool   Si ce drapeau est vrai, l'index est valide pour les requêtes. Faux signifie que l'index peut être incomplet : les opérations INSERT/UPDATE peuvent toujours l'utiliser, mais il ne peut pas être utilisé sans risque pour les requêtes, et, dans le cas d'un index d'unicité, cette propriété n'est plus garantie.
indcheckxmin bool   Si vrai, les requêtes ne doivent pas utiliser l'index tant que le xmin de cette ligne de pg_index est en-dessous de leur horizon d'événements TransactionXmin, car la table peut contenir des chaînes HOT cassées avec des lignes incompatibles qu'elles peuvent voir.
indisready bool   Si vrai, l'index est actuellement prêt pour les insertions. Faux indique que l'index doit être ignoré par les opérations INSERT/UPDATE
indislive bool   Si faux, l'index est en cours de suppression et devrait être complètement ignoré (y compris pour les décisions sur la sûreté de HOT)
indisreplident bool   Si vrai, cet index a été choisi comme « identité de réplication » en utilisant ALTER TABLE ... REPLICA IDENTITY USING INDEX ...
indkey int2vector pg_attribute.attnum C'est un tableau de valeurs indnatts qui indique les colonnes de la table indexées. Par exemple, une valeur 1 3 signifie que la première et la troisième colonne de la table composent la clé de l'index. Un 0 dans ce tableau indique que l'attribut de l'index correspondant est une expression sur les colonnes de la table plutôt qu'une simple référence de colonne.
indcollation oidvector pg_collation.oid Pour chaque colonne dans la clé de l'index, cette colonne contient l'OID du collationnement à utiliser pour l'index.
indclass oidvector pg_opclass.oid Pour chaque colonne de la clé d'indexation, contient l'OID de la classe d'opérateur à utiliser. Voir pg_opclass pour plus de détails.
indoption int2vector   C'est un tableau de valeurs indnatts qui enregistrent des drapeaux d'information par colonne. La signification de ces drapeaux est définie par la méthode d'accès à l'index.
indexprs pg_node_tree   Arbres d'expression (en représentation nodeToString()) pour les attributs d'index qui ne sont pas de simples références de colonnes. Il s'agit d'une liste qui contient un élément par entrée à 0 dans indkey. Nul si tous les attributs d'index sont de simples références.
indpred pg_node_tree   Arbre d'expression (en représentation nodeToString()) pour les prédicats d'index partiels. Nul s'il ne s'agit pas d'un index partiel.