PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 17.2 » 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

Type

Description

indexrelid oid (référence pg_class.oid)

OID de l'entrée dans pg_class pour l'index

indrelid oid (référence pg_class.oid)

OID de l'entrée dans pg_class de la table sur laquelle porte l'index

indnatts int2

Le nombre total de colonnes dans l'index (duplique pg_class.relnatts). Ce nombre inclut les attributs clé et supplémentaires.

indnkeyatts int2

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

indisunique bool

Vrai s'il s'agit d'un index d'unicité

indnullsnotdistinct bool

Cette valeur est seulement utilisée pour les index d'unicité. Si sa valeur est false, cet index d'unicité considérera les valeurs NULL comme distinctes les unes des autres (donc l'index peut contenir plusieurs valeurs NULL dans une colonne, ce qui correspond au comportement par défaut de PostgreSQL). Si sa valeur est true, il considérera les valeurs NULL comme égales (donc l'index peut seulement contenir une valeur NULL dans une colonne).

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 (référence 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. 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.

indcollation oidvector (référence pg_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.

indclass oidvector (référence pg_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.

indoption int2vector

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.

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.