pg_class
The system catalog table pg_class catalogs tables and most everything else that has columns or is otherwise similar to a table (also known as relations). This includes indexes (see also pg_index), sequences, views, composite types, and TOAST tables. Not all columns are meaningful for all relation types.
| column | type | references | description | 
|---|---|---|---|
| relname | name | Name of the table, index, view, etc. | |
| relnamespace | oid | pg_namespace.oid | The OID of the namespace (schema) that contains this relation | 
| reltype | oid | pg_type.oid | The OID of the data type that corresponds to this table’s row type, if any (zero for indexes, which have no pg_typeentry) | 
| relowner | oid | pg_authid.oid | Owner of the relation | 
| relam | oid | pg_am.oid | If this is an index, the access method used (B-tree, Bitmap, hash, etc.) | 
| relfilenode | oid | Name of the on-disk file of this relation; 0if none. | |
| reltablespace | oid | pg_tablespace.oid | The tablespace in which this relation is stored. If zero, the database’s default tablespace is implied. (Not meaningful if the relation has no on-disk file.) | 
| relpages | integer | Size of the on-disk representation of this table in pages (of 32K each). This is only an estimate used by the planner. It is updated by ANALYZE, and a few DDL commands. | |
| reltuples | real | Number of rows in the table. This is only an estimate used by the planner. It is updated by VACUUM,ANALYZE, and a few DDL commands. | |
| reltoastrelid | oid | pg_class.oid | OID of the TOAST table associated with this table, 0if none. The TOAST table stores large attributes “out of line” in a secondary table. | 
| reltoastidxid | oid | pg_class.oid | For a TOAST table, the OID of its index. 0if not a TOAST table. | 
| relaosegidxid | oid | Deprecated. | |
| relaosegrelid | oid | Deprecated. | |
| relhasindex  | boolean | True if this is a table and it has (or recently had) any indexes. This is set by CREATE INDEX, but not cleared immediately byDROP INDEX.VACUUMwill clear if it finds the table has no indexes. | |
| relisshared | boolean | True if this table is shared across all databases in the system. Only certain system catalog tables are shared. | |
| relkind | char | The type of object 
 | |
| relstorage | char | The storage mode of a table 
 | |
| relnatts | smallint | Number of user columns in the relation (system columns not counted). There must be this many corresponding entries in pg_attribute. | |
| relchecks | smallint | Number of check constraints on the table. | |
| reltriggers | smallint | Number of triggers on the table. | |
| relukeys | smallint | Unused | |
| relfkeys | smallint | Unused | |
| relrefs | smallint | Unused | |
| relhasoids | boolean | True if an OID is generated for each row of the relation. | |
| relhaspkey | boolean | True if the table once had a primary key. | |
| relhasrules | boolean | True if table has rules. | |
| relhassubclass | boolean | True if table has (or once had) any inheritance children. | |
| relfrozenxid | xid | All transaction IDs before this one have been replaced with a permanent (frozen) transaction ID in this table. This is used to track whether the table needs to be vacuumed in order to prevent transaction ID wraparound or to allow pg_clog to be shrunk. Zero ( InvalidTransactionId) if the relation is not a table. | |
| relacl | aclitem[] | Access privileges assigned by GRANTandREVOKE. | |
| reloptions | text[] | Access-method-specific options, as “keyword=value” strings. |