| 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 | 
| indnatts | int2 |  | The number of columns in the index (duplicates
      pg_class.relnatts) | 
| 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.) | 
| indisclustered | bool |  | If true, the table was last clustered on this index | 
| indisvalid | bool |  | If true, the index is currently valid for queries.  False means the
       index is possibly incomplete: it must still be modified by
       INSERT/UPDATE operations, but it cannot safely
       be used for queries. If it is unique, the uniqueness property is not
       true either | 
| indkey | int2vector | pg_attribute.attnum | This is an array of indnatts values that
       indicate which table columns this index indexes.  For example a value
       of 1 3 would mean that the first and the third table
       columns make up the index key.  A zero in this array indicates that the
       corresponding index attribute is an expression over the table columns,
       rather than a simple column reference. | 
| indclass | oidvector | pg_opclass.oid | For each column in the index key this contains the OID of
       the operator class to use.  See
       pg_opclass for details | 
| indexprs | text |  | Expression trees (in nodeToString()representation)
      for index attributes that are not simple column references.  This is a
      list with one element for each zero entry in indkey.
      NULL if all index attributes are simple references | 
| indpred | text |  | Expression tree (in nodeToString()representation)
      for partial index predicate.  NULL if not a partial index |