PG_INDEX
PG_INDEX records part of the information about indexes. The rest is mostly in PG_CLASS.
| 
        Column  | 
      
        Type  | 
      
        Description  | 
     
|---|---|---|
| 
        indexrelid  | 
      
        OID  | 
      
        OID of the pg_class entry for this index  | 
     
| 
        indrelid  | 
      
        OID  | 
      
        OID of the pg_class entry for the table this index is for  | 
     
| 
        indnatts  | 
      
        Smallint  | 
      
        Number of columns in an index  | 
     
| 
        indisunique  | 
      
        boolean  | 
      
        This index is a unique index if the value is true.  | 
     
| 
        indisprimary  | 
      
        boolean  | 
      
        This index represents the primary key of the table if the value is true. If this value is true, the value of indisunique is true.  | 
     
| 
        indisexclusion  | 
      
        boolean  | 
      
        This index supports exclusion constraints if the value is true.  | 
     
| 
        indimmediate  | 
      
        boolean  | 
      
        A uniqueness check is performed upon data insertion if the value is true.  | 
     
| 
        indisclustered  | 
      
        boolean  | 
      
        The table was last clustered on this index if the value is true.  | 
     
| 
        indisusable  | 
      
        boolean  | 
      
        This index supports insert/select if the value is true.  | 
     
| 
        indisvalid  | 
      
        boolean  | 
      
        This index is valid for queries if the value is true. If this column is false, this index is possibly incomplete and must still be modified by INSERT/UPDATE operations, but it cannot safely be used for queries. If it is a unique index, the uniqueness property is also not true.  | 
     
| 
        indcheckxmin  | 
      
        boolean  | 
      
        If the value is true, queries must not use the index until the xmin of this row in pg_index is below their TransactionXmin event horizon, because the table may contain broken HOT chains with incompatible rows that they can see.  | 
     
| 
        indisready  | 
      
        boolean  | 
      
        If the value is true, this index is ready for inserts. If the value is false, this index is ignored when data is inserted or modified.  | 
     
| 
        indkey  | 
      
        int2vector  | 
      
        This is an array of indnatts values that indicate which table columns this index creates. For example, a value of 1 3 means that the first and the third columns make up the index key. 0 in this array indicates that the corresponding index attribute is an expression over the table columns, rather than a simple column reference.  | 
     
| 
        indcollation  | 
      
        oidvector  | 
      
        ID of each column used by the index  | 
     
| 
        indclass  | 
      
        oidvector  | 
      
        For each column in the index key, this column contains the OID of the operator class to use. For details, see PG_OPCLASS.  | 
     
| 
        indoption  | 
      
        int2vector  | 
      
        Array of values that store per-column flag bits. The meaning of the bits is defined by the index's access method.  | 
     
| 
        indexprs  | 
      
        pg_node_tree  | 
      
        Expression trees (in nodeToString() representation) for index attributes that are not simple column references. It is a list with one element for each zero entry in INDKEY. NULL if all index attributes are simple references.  | 
     
| 
        indpred  | 
      
        pg_node_tree  | 
      
        Expression tree (in nodeToString() representation) for partial index predicate. If the index is not a partial index, the value is null.  | 
     
| 
        indnullstreatment  | 
      
        tinyint  | 
      
        Processing mode of the NULL value in the unique index. This field is valid only if indisunique is set to true. Options: 
 Default value: 0 
         NOTE: 
         
  | 
     
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.