PG_CLASS
PG_CLASS records database objects and their relationship.
| Name | Type | Description | ||||
|---|---|---|---|---|---|---|
| oid | oid | Row identifier (hidden attribute, which must be specified). | ||||
| relname | name | Name of an object, such as a table, index, or view. | ||||
| relnamespace | oid | OID of the namespace that contains the relationship. | ||||
| reltype | oid | Data type that corresponds to the table's row type. The index is 0 because the index does not have PG_TYPE records. | ||||
| reloftype | oid | OID of the composite type (0 for other types). | ||||
| relowner | oid | Owner of the relationship. | ||||
| relam | oid | Access method used, such as B-tree and hash, if this is an index. | ||||
| relfilenode | oid | Name of the on-disk file of this relationship (0 if such file does not exist). | ||||
| reltablespace | oid | Tablespace in which this relationship is stored. If the value is 0, the default tablespace in this database is used. This column is meaningless if the relationship has no on-disk file. | ||||
| relpages | double precision | Size of the on-disk representation of the table in pages (of size BLCKSZ). This is only an estimate used by the optimizer. | ||||
| reltuples | double precision | Number of rows in the table. This is only an estimate used by the optimizer. | ||||
| relallvisible | integer | Number of pages marked as all visible in the table. This column is used by the optimizer for optimizing SQL execution. It is updated by VACUUM, ANALYZE, and a few DDL statements such as CREATE INDEX. | ||||
| reltoastrelid | oid | OID of the TOAST table associated with the table (0 if no TOAST table exists). The TOAST table stores large columns "offline" in a secondary table. | ||||
| reltoastidxid | oid | OID of the index for a TOAST table (0 for a table other than a TOAST table). | ||||
| relhasindex | boolean | Its value is true if this column is a table and has (or recently had) at least one index. It is set by CREATE INDEX but is not immediately cleared by DROP INDEX. If the VACUUM process detects that a table has no index, it clears the relhasindex column and sets the value to false. | ||||
| relisshared | boolean | Its value is true if the table is shared across all databases in the entire cluster. Otherwise, the value is false. Only certain system catalogs (such as PG_DATABASE) are shared. | ||||
| relpersistence | "char" |
| ||||
| relkind | "char" |
| ||||
| relnatts | smallint | Number of user columns in the relationship (excluding system columns). PG_ATTRIBUTE has the same number of rows as the user columns. | ||||
| relchecks | smallint | Number of check constraints in the table. For details, see the system catalog PG_CONSTRAINT. | ||||
| relhasoids | boolean | Its value is true if an OID is generated for each row of the relationship. Otherwise, the value is false. | ||||
| relhaspkey | boolean | Its value is true if the table has (or once had) a primary key. Otherwise, the value is false. | ||||
| relhasrules | boolean | Its value is true if the table has rules. For details, see the system catalog PG_REWRITE. | ||||
| relhastriggers | boolean | The value is true if the table has (or once had) triggers. Triggers of the table and view are recorded in the system catalog PG_TRIGGER. | ||||
| relhassubclass | boolean | Its value is true if the table has (or once had) any inheritance child table. Otherwise, the value is false. | ||||
| relrowmovement | boolean | Specifies whether row migration is allowed when the partitioned table is updated.
| ||||
| parttype | "char" | Specifies whether the table or index has the property of a partitioned table.
| ||||
| relfrozenxid | xid32 | All transaction IDs before this one have been replaced with a permanent ("frozen") transaction ID in the table. This column is used to track whether the table needs to be vacuumed to prevent transaction ID wraparound (or to allow PG_CLOG to be shrunk). The value is 0 (InvalidTransactionId) if the relationship is not a table. To ensure forward compatibility, this column is reserved. The relfrozenxid64 column is added to record the information. | ||||
| relacl | aclitem[] | Access permissions. The command output of the query is as follows:
xxxx indicates assigned permissions, and yyyy indicates roles with the assigned permissions. For details on permission descriptions, see Table 2. | ||||
| reloptions | text[] | Table or index access method, using character strings in the format of keyword=value. | ||||
| relreplident | "char" | Identifier of a decoding column in logical decoding.
| ||||
| relfrozenxid64 | xid | All transaction IDs before this one have been replaced with a permanent ("frozen") transaction ID in the table. This column is used to track whether the table needs to be vacuumed to prevent transaction ID wraparound (or to allow PG_CLOG to be shrunk). The value is 0 (InvalidTransactionId) if the relationship is not a table. | ||||
| relbucket | oid | Specifies whether the current catalog contains hash bucket shards. A valid OID points to the specific shard information recorded in the PG_HASHBUCKET catalog. NULL indicates that hash bucket shards are not included. | ||||
| relbucketkey | int2vector | Hash partition key information. NULL indicates that the column information is not included. | ||||
| relminmxid | xid | All multi-transaction IDs before this one have been replaced with a transaction ID in the table. This column is used to track whether the table needs to be vacuumed in order to prevent multi-transaction IDs wraparound or to allow pg_clog to be shrunk. The value is 0 (InvalidTransactionId) if the relationship is not a table. |
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.