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 | oid | pg_proc.oid | The registered procedure if this is a functional index |
indkey | int2vector | pg_attribute.attnum | This is an 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 | |
indislossy | bool | ??? | |
indisunique | bool | If true, this is a unique index. | |
indisprimary | bool | If true, this index is a unique index that represents the primary key of the table. | |
indreference | oid | unused | |
indpred | text | Query plan for partial index predicate (not functional) |