历史版本。 PostgreSQL 9.1 已结束支持。 2016-10-27. 请参阅 当前版本手册.
45.11. pg_class #
目录 pg_class 记录表和大多数其他具有列或者类似于表的对象。这包括索引(但另见 pg_index)、序列、视图、组合类型和 TOAST 表;见 relkind。Below, when we mean all of these
kinds of objects we speak of “relations”. Not all
columns are meaningful for all relation types.
表 45.11. pg_class 列
| Name | Type | References | Description |
|---|---|---|---|
relname | name | Name of the table, index, view, etc. | |
relnamespace | oid | | The OID of the namespace that contains this relation |
reltype | 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)
|
reloftype | oid | | For typed tables, the OID of the underlying composite type, zero for all other relations |
relowner | oid | | Owner of the relation |
relam | 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; zero means this is a “mapped” relation whose disk file name is determined by low-level state | |
reltablespace | 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 | | 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 | | 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 | |
relisshared | bool | True if this table is shared across all databases in the cluster. Only
certain system catalogs (such as pg_database)
are shared.
| |
relpersistence | char | p = permanent table, u = unlogged table,
t = temporary table
| |
relkind | char | r = ordinary table, i = index,
S = sequence, v = view, c =
composite type, t = TOAST table,
f = foreign 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
| |
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 (or once had) rules; see
pg_rewrite catalog
| |
relhastriggers | bool | True if table has (or once had) triggers; see
pg_trigger 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 |
pg_class中的一些布尔标志采用延迟维护:当条件成立时,保证它们为真;但当条件不再成立时,可能不会立即将它们重置为假。例如,relhasindex由CREATE INDEX设置,但它从不会被DROP INDEX清除。作为替代,VACUUM会在找到无索引表后清除其relhasindex。这种安排避免了竞争条件并且提高了并发性。