pg_class

系统目录表pg_class记录表以及其他大部分具有列或者与表(也称为 关系)相似的东西。这包括索引(另见pg_index)、序列、视图、组合类型和TOAST表。并不是所有的列对所有的关系类型都有意义。

表 1. pg_catalog.pg_class
类型参考描述
relnamename 表、索引、视图等的名字。
relnamespaceoidpg_namespace.oid包含这个关系的命名空间(方案)的OID
reltypeoidpg_type.oid如果有的话(索引为0,没有pg_type项),对应与此表的行类型的数据类型的OID
relowneroidpg_authid.oid关系的所有者
relamoidpg_am.oid如果这是一个索引,则表示访问方法(B树、位图、哈希等。)
relfilenodeoid 此关系的磁盘文件的名称,如果没有则为0
reltablespaceoidpg_tablespace.oid存储此关系的表空间。如果为0,则表示数据库的默认表空间(如果关系没有磁盘文件,则无意义)。
relpagesint4 该表的磁盘尺寸,以页面为单位(每页32k)。这只是规划器使用估计值。它由VACUUMANALYZE和一些DDL命令更新。
reltuplesfloat4 表中的行数。这只是规划器使用的估计值。它由 VACUUMANALYZE和一些DDL命令更新。
reltoastrelidoidpg_class.oid与这张表关联的TOAST表的OID,没有的就为0。TOAST在一张二级表中存储普通行不能存储的大属性。
reltoastidxidoidpg_class.oid对于TOAST表,其上的索引的OID。如果不是TOAST表则为0
relaosegidxidoid 在Greenplum数据库 3.4中已弃用。
relaosegrelidoid 在Greenplum数据库 3.4中已弃用。
relhasindexboolean 如果这是一个表,它有(或最近有)任何索引,则为true。这由CREATE INDEX设置,但不会被DROP INDEX立刻清除。VACUUM 如果没有找到表的索引,则会清除这个属性。
relissharedboolean 如果此表在系统中的所有数据库中共享,则为true。只有某些系统目录表被共享。
relkindchar 对象的类型

r = 堆或追加优化表, i = 索引,S = 序列,v = 视图,c = 组合类型,t = TOAST值, o = 内部的追加优化Segment文件和EOF,u = 未登记的临时堆表。

relstoragechar 表的存储模式

a= 追加优化,c= 列存,h = 堆, v = 虚拟,x= 外部表。

relnattsint2 关系中用户列的数量(系统列不计入)。pg_attribute中必须有这么多个相应的项。
relchecksint2 表中检查约束的个数。
reltriggersint2 表中触发器的个数。
relukeysint2 未使用
relfkeysint2 未使用
relrefsint2 未使用
relhasoidsboolean 如果为关系的每一行生成OID即为真。
relhaspkeyboolean 如果该表有(或曾经有)主键则为真。
relhasrulesboolean 如果表有规则则为真
relhassubclassboolean 如果表有(或曾经有)任何继承的子代,则为真。
relfrozenxidxid 表中在此之前的所有事务的ID已替换为的永久(冻结)事务ID。这用于跟踪该表是否需要清理以防止事务ID回卷或允许pg_clog收缩。如果关系不是表,则为0(InvalidTransactionId)。
relaclaclitem[] GRANTREVOKE分配的访问权限。
reloptionstext[] 访问方法相关的选项,为形如“键=值”的字符串。

上级话题: 系统目录定义