PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 12.21 » Internes » Catalogues système » pg_index

51.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 51.26. Colonnes de pg_index

NomTypeRéférencesDescription
indexrelidoidpg_class.oidOID de l'entrée dans pg_class de l'index
indrelidoidpg_class.oidOID de l'entrée dans pg_class de la table sur laquelle porte l'index
indnattsint2 Le nombre total de colonnes dans l'index (duplique pg_class.relnatts). Ce nombre inclut les attributs clé et supplémentaires.
indnkeyattsint2 Le nombre de colonnes clés dans l'index, sans compter les colonnes supplémentaires, qui sont simplement enregistrés et ne participent pas à la sémantique de l'index
indisuniquebool Vrai s'il s'agit d'un index d'unicité
indisprimarybool Vrai s'il s'agit de l'index de clé primaire de la table (indisunique doit toujours être vrai quand ce champ l'est.)
indisexclusionbool Vrai s'il s'agit de l'index supportant une contrainte d'exclusion
indimmediatebool Si vrai, la vérification de l'unicité est forcée immédiatement lors de l'insertion (inutile si indisunique ne vaut pas true)
indisclusteredbool Vrai si la table a été réorganisée en fonction de l'index
indisvalidbool 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.
indcheckxminbool  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.
indisreadybool  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
indislivebool  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)
indisreplidentbool  Si vrai, cet index a été choisi comme « identité de réplication » en utilisant ALTER TABLE ... REPLICA IDENTITY USING INDEX ...
indkeyint2vectorpg_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. Les colonnes clés viennent avant les colonnes supplémentaires, non clés. 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.
indcollationoidvectorpg_collation.oid Pour chaque colonne dans la clé de l'index (indnkeyatts values), cette colonne contient l'OID du collationnement à utiliser pour l'index, ou zéro si la colonne n'est pas d'un type de données collationnable.
indclassoidvectorpg_opclass.oid Pour chaque colonne de la clé d'indexation (indnkeyatts values), contient l'OID de la classe d'opérateur à utiliser. Voir pg_opclass pour plus de détails.
indoptionint2vector  C'est un tableau de valeurs indnkeyatts 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.
indexprspg_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.
indpredpg_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.