PG_CLASS
PG_CLASS系统表存储数据库对象信息及其之间的关系。
表 1 PG_CLASS字段
| 名称 | 类型 | 描述 |
|---|---|---|
| oid | oid | 行标识符(隐含属性,必须明确选择)。 |
| relname | name | 表、索引、视图等对象的名称。 |
| relnamespace | oid | 包含这个关系的名称空间的OID。 |
| reltype | oid | 对应这个表的行类型的数据类型(索引为零,因为索引没有pg_type记录)。 |
| reloftype | oid | 复合类型的OID,0表示其他类型。 |
| relowner | oid | 关系所有者。 |
| relam | oid | 如果行是索引,则就是所用的访问模式(B-tree,hash等)。 |
| 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。 |
| reldeltarelid | oid | Delta表的OID。 Delta表附属于列存表。用于存储数据导入过程中的甩尾数据。 |
| reldeltaidx | oid | Delta表的索引表OID。 |
| relcudescrelid | oid | CU描述表的OID。 CU描述表(Desc表)附属于列存表。用于控制表目录中存储数据的可见性。 |
| relcudescidx | oid | CU描述表的索引表OID。 |
| relhasindex | boolean | 如果它是一个表而且至少有(或者最近有过)一个索引,则为真。 它是由CREATE INDEX设置的,但DROP INDEX不会立即将它清除。如果VACUUM进程检测一个表没有索引,将会把它将清理relhasindex字段,将值设置为假。 |
| relisshared | boolean | 如果该表在MogDB中由所有数据库共享则为真。只有某些系统表(比如pg_database)是共享的。 |
| relpersistence | "char" | - p: 表示永久表。 - u: 表示非日志表。 - g: 表示临时表。 |
| relkind | "char" | - r: 表示普通表。 - i: 表示索引。 - I: 表示分区表GLOBAL索引。 - S: 表示序列。 - L: 表示Large序列。 - v: 表示视图。 - c: 表示复合类型。 - t: 表示TOAST表。 - f: 表示外表。 - m: 表示物化视图。 |
| relnatts | smallint | 关系中用户字段数目(除了系统字段以外)。在pg_attribute里肯定有相同数目对应行。 |
| relchecks | smallint | 表里的检查约束的数目;参阅pg_constraint表。 |
| relhasoids | boolean | 如果为关系中每行都生成一个OID则为真。 |
| relhaspkey | boolean | 如果这个表有一个(或者曾经有一个)主键,则为真。 |
| relhasrules | boolean | 如表有规则就为真。是否有规则可参考系统表PG_REWRITE。 |
| relhastriggers | boolean | True表示表中有触发器,或者曾经有过触发器。系统表pg_trigger中记录了表和视图的触发器。 |
| relhassubclass | boolean | 如果有(或者曾经有)任何继承的子表,为真。 |
| relcmprs | tinyint | 表示是否启用表的启用压缩特性。需要特别注意,当且仅当批量插入才会触发压缩,普通的CRUD并不能够触发压缩。 - 0表示其他不支持压缩的表(主要是指系统表,不支持压缩属性的修改操作)。 - 1表示表数据的压缩特性为NOCOMPRESS或者无指定关键字。 - 2表示表数据的压缩特性为COMPRESS。 |
| relhasclusterkey | boolean | 是否有局部聚簇存储。 |
| relrowmovement | boolean | 针对分区表进行update操作时,是否允许行迁移。 - true: 表示允许行迁移。 - false: 表示不允许行迁移。 |
| parttype | "char" | 表或者索引是否具有分区表的性质。 - p: 表示带有分区表性质。 - n: 表示没有分区表特性。 - v: 表示该表为HDFS的Value分区表。 - s:表示该表为二级分区表。 |
| relfrozenxid | xid32 | 该表中所有在这个之前的事务ID已经被一个固定的("frozen")事务ID替换。该字段用于跟踪此表是否需要为了防止事务ID重叠(或者允许收缩pg_clog)而进行清理。如果该关系不是表则为零(InvalidTransactionId)。 为保持前向兼容,保留此字段,新增relfrozenxid64用于记录此信息。 |
| relacl | aclitem[] | 访问权限。 查询的回显结果为以下形式: rolename=xxxx/yyyy -赋予一个角色的权限=xxxx/yyyy -赋予public的权限xxxx表示赋予的权限,yyyy表示授予这个权限的角色。权限的参数说明请参见表2。 |
| relreplident | "char" | 逻辑解码中解码列的标识: - d = 默认 (主键,如果存在)。 - n = 无。 - f = 所有列。 - i = 索引的indisreplident被设置或者为默认。 |
| relfrozenxid64 | xid | 该表中所有在这个之前的事务ID已经被一个固定的("frozen")事务ID替换。该字段用于跟踪此表是否需要为了防止事务ID重叠(或者允许收缩pg_clog)而进行清理。如果该关系不是表则为零(InvalidTransactionId)。 |
| relbucket | oid | pg_hashbucket中的桶信息。 |
| relbucketkey | int2vector | 哈希分区列号。 |
| relminmxid | xid | 该表中所有在这个之前的多事务ID已经被一个事务ID替换。这用于跟踪该表是否需要为了防止多事务ID重叠或者允许收缩pg_clog而进行清理。如果该关系不是表则为零(InvalidTransactionId)。 |
| 参数 | 参数说明 |
|---|---|
| r | SELECT(读) |
| w | UPDATE(写) |
| a | INSERT(插入) |
| d | DELETE |
| D | TRUNCATE |
| x | REFERENCES |
| t | TRIGGER |
| X | EXECUTE |
| U | USAGE |
| C | CREATE |
| c | CONNECT |
| T | TEMPORARY |
| A | ALTER |
| P | DROP |
| m | COMMENT |
| i | INDEX |
| v | VACUUM |
| * | 给前面权限的授权选项 |
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




