pg_index contains part of the information about indexes. The rest is mostly in pg_class.
Table 3-9. pg_index Columns
Name | Type | References | Description |
---|---|---|---|
indexrelid | oid | pg_class.oid | The oid of the pg_class entry for this index |
indrelid | oid | pg_class.oid | The oid of the pg_class entry for the table this index is for |
indproc | regproc | pg_proc.oid | The registered procedure if this is a functional index |
indkey | int2vector | pg_attribute.attnum | This is a vector (array) of up to INDEX_MAX_KEYS values that indicate which table columns this index pertains to. For example a value of 1 3 would mean that the first and the third column make up the index key. |
indclass | oidvector | pg_opclass.oid | For each column in the index key this contains a reference to the "operator class" to use. See pg_opclass for details. |
indisclustered | bool | unused | |
indisunique | bool | If true, this is a unique index. | |
indisprimary | bool | If true, this index represents the primary key of the table. (indisunique should always be true when this is true.) | |
indreference | oid | unused | |
indpred | text | Expression tree (in the form of a nodeToString representation) for partial index predicate |