September 26, 2024: PostgreSQL 17 Released!
Supported Versions: Current (17) / 16 / 15 / 14 / 13 / 12
Development Versions: devel
Unsupported versions: 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
This documentation is for an unsupported version of PostgreSQL.
You may want to view the same page for the current version, or one of the other supported versions listed above instead.

3.9. pg_index

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