PostgreSQL 8.2.6 Documentation | ||||
---|---|---|---|---|
Prev | Fast Backward | Chapter 43. System Catalogs | Fast Forward | Next |
The catalog pg_class catalogs tables and most everything else that has columns or is otherwise similar to a table. This includes indexes (but see also pg_index ), sequences, views, composite types, and TOAST tables; see relkind . Below, when we mean all of these kinds of objects we speak of "relations" . Not all columns are meaningful for all relation types.
Table 43-12. pg_class Columns
Name | Type | References | Description |
---|---|---|---|
relname | name | Name of the table, index, view, etc. | |
relnamespace | oid | pg_namespace .oid | The OID of the namespace 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_type entry) |
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, hash, etc.) |
relfilenode | oid | Name of the on-disk file of this relation; 0 if 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 | int4 | Size of the on-disk representation of this table in pages (of size BLCKSZ ). This is only an estimate used by the planner. It is updated by VACUUM , ANALYZE , and a few DDL commands such as CREATE INDEX | |
reltuples | float4 | 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 such as CREATE INDEX | |
reltoastrelid | oid | pg_class .oid | OID of the TOAST table associated with this table, 0 if 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. 0 if not a TOAST table |
relhasindex | bool | True if this is a table and it has (or recently had) any indexes. This is set by CREATE INDEX , but not cleared immediately by DROP INDEX . VACUUM clears relhasindex if it finds the table has no indexes | |
relisshared | bool | True if this table is shared across all databases in the cluster. Only certain system catalogs (such as pg_database ) are shared | |
relkind | char | r = ordinary table, i = index, S = sequence, v = view, c = composite type, t = TOAST table | |
relnatts | int2 | Number of user columns in the relation (system columns not counted). There must be this many corresponding entries in pg_attribute . See also pg_attribute.attnum | |
relchecks | int2 | Number of check constraints on the table; see pg_constraint catalog | |
reltriggers | int2 | Number of triggers on the table; see pg_trigger catalog | |
relukeys | int2 | Unused ( not the number of unique keys) | |
relfkeys | int2 | Unused ( not the number of foreign keys on the table) | |
relrefs | int2 | Unused | |
relhasoids | bool | True if we generate an OID for each row of the relation | |
relhaspkey | bool | True if the table has (or once had) a primary key | |
relhasrules | bool | True if table has rules; see pg_rewrite catalog | |
relhassubclass | bool | 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; see GRANT and REVOKE for details | |
reloptions | text[] | Access-method-specific options, as "keyword=value" strings |