PG_CLASS
PG_CLASS系统表存储数据库对象信息及其之间的关系。
名称 |
类型 |
描述 |
||||
---|---|---|---|---|---|---|
oid |
oid |
行标识符(隐含属性,必须明确选择)。 |
||||
relname |
name |
表、索引、视图等对象的名称。 |
||||
relnamespace |
oid |
包含这个关系的名称空间的OID。 |
||||
reltype |
oid |
对应这个表的行类型的数据类型(索引为零,因为索引没有pg_type记录)。 |
||||
reloftype |
oid |
复合类型的OID,0表示其他类型。 |
||||
relowner |
oid |
关系所有者。 |
||||
relam |
oid |
如果行是索引,则就是所用的访问模式(B-tree等)。 |
||||
relfilenode |
oid |
这个关系在磁盘上的文件的名称,如果没有则为0。 |
||||
reltablespace |
oid |
这个关系存储所在的表空间。如果为零,则意味着使用该数据库的缺省表空间。如果关系在磁盘上没有文件,则这个字段没有什么意义。 |
||||
relpages |
double precision |
以页(大小为BLCKSZ)为单位的此表在磁盘上的大小,它只是优化器用的一个近似值。 |
||||
reltuples |
double precision |
表中行的数目,只是优化器使用的一个估计值。 |
||||
relallvisible |
integer |
被标识为全可见的表中的页的数量。此字段是优化器用来做SQL执行优化使用的。VACUUM、ANALYZE和一些DDL语句(例如,CREATE INDEX)会引起此字段更新。 |
||||
reltoastrelid |
oid |
与此表关联的TOAST表的OID ,如果没有则为0。 TOAST表在一个从属表里“离线”存储大字段。 |
||||
reltoastidxid |
oid |
对于TOAST表是它的索引的OID,如果不是TOAST表则为0。 |
||||
relhasindex |
boolean |
如果它是一个表而且至少有(或者最近有过)一个索引,则为真。 它是由CREATE INDEX设置的,但DROP INDEX不会立即将它清除。如果VACUUM线程检测一个表没有索引,将会把它将清理relhasindex字段,将值设置为假。 |
||||
relisshared |
boolean |
如果该表在数据库中由所有数据库共享则为真,否则为假。只有某些系统表(比如pg_database)是共享的。 |
||||
relpersistence |
"char" |
|
||||
relkind |
"char" |
|
||||
relnatts |
smallint |
关系中用户字段数目(除了系统字段以外)。在13.2.15.25 PG_ATTRIBUTE里肯定有相同数目对应行。 |
||||
relchecks |
smallint |
表里的检查约束的数目,参阅13.2.15.29 PG_CONSTRAINT表。 |
||||
relhasoids |
boolean |
如果为关系中每行都生成一个OID则为真,否则为假。 |
||||
relhaspkey |
boolean |
如果这个表有一个(或者曾经有一个)主键则为真,否则为假。 |
||||
relhasrules |
boolean |
如表有规则就为真。是否有规则可参考系统表13.2.15.62 PG_REWRITE。 |
||||
relhastriggers |
boolean |
True表示表中有触发器,或者曾经有过触发器。系统表13.2.15.71 PG_TRIGGER中记录了表和视图的触发器。 |
||||
relhassubclass |
boolean |
如果有(或者曾经有)任何继承的子表为真,否则为假。 |
||||
relcmprs |
tinyint |
表示是否启用表的压缩特性。需要特别注意,当且仅当批量插入才会触发压缩,普通的CRUD并不能够触发压缩。
|
||||
relrowmovement |
boolean |
针对分区表进行update操作时,是否允许行迁移。
|
||||
parttype |
"char" |
表或者索引是否具有分区表的性质。
|
||||
relfrozenxid |
xid32 |
该表中所有在这个之前的事务ID已经被一个固定的("frozen")事务ID替换。该字段用于跟踪此表是否需要为了防止事务ID重叠(或者允许收缩pg_clog)而进行清理。如果该关系不是表则为零(InvalidTransactionId)。 为保持前向兼容,保留此字段,新增relfrozenxid64用于记录此信息。 |
||||
relacl |
aclitem[] |
访问权限。aclitem类型说明可以参考aclitem类型。 查询的回显结果为以下形式:
其中user1、user2和user3为数据库中已存在的用户/角色名,privs为数据库中支持的权限。权限的参数说明请参见表2。 |
||||
reloptions |
text[] |
表或索引的访问方法,使用"keyword=value"格式的字符串。 |
||||
relreplident |
"char" |
逻辑解码中解码列的标识:
|
||||
relfrozenxid64 |
xid |
该表中所有在这个之前的事务ID已经被一个固定的("frozen")事务ID替换。该字段用于跟踪此表是否需要为了防止事务ID重叠(或者允许收缩pg_clog)而进行清理。如果该关系不是表则为零(InvalidTransactionId)。 对于全局临时表,该字段无实际意义。各会话的全局临时表的relfrozenxid64可在pg_catalog.pg_gtt_relstats视图中查看。 |
||||
relbucket |
oid |
当前表是否包含hash bucket分片。有效的OID指向pg_hashbucket表中记录的具体分片信息。NULL表示不包含hash bucket分片。 |
||||
relbucketkey |
int2vector |
表示hash分区列信息,NULL表示不包含。 |
||||
relminmxid |
xid |
该表中所有在这个之前的多事务ID已经被一个事务ID替换。该字段用于跟踪该表是否需要为了防止多事务ID重叠或者允许收缩pg_clog而进行清理。如果该关系不是表则为零(InvalidTransactionId)。 |