Le catalogue pg_index contient une partie des informations concernant les index. Le reste se trouve pour l'essentiel dans pg_class.
Tableau 47.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) | |
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. |