Documentation PostgreSQL 14.22 » Internes » Catalogues système » `pg_index`

Précédent | Niveau supérieur | Suivant
52.25. `pg_foreign_table` | Sommaire | 52.27. `pg_inherits`

## 52.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 52.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é
`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érateurs à 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.