GaussDB-PG_CLASS

107 阅读5分钟

GaussDB-PG_CLASS

PG_CLASS系统表存储数据库对象信息及其之间的关系。

名称类型描述
oidoid行标识符(隐含字段,必须明确选择)。
relnamename表、索引、视图等对象的名称。
relnamespaceoid包含这个关系的名称空间的OID。
reltypeoid对应这个表的行类型的数据类型(索引为零,因为索引没有pg_type记录)。
reloftypeoid复合类型的OID,0表示其他类型。
relowneroid关系所有者。
relamoid如果行是索引,则就是所用的访问模式(B-tree等)。
relfilenodeoid这个关系在磁盘上的文件的名称,如果没有则为0。
reltablespaceoid这个关系存储所在的表空间。如果为零,则意味着使用该数据库的缺省表空间。如果关系在磁盘上没有文件,则这个字段没有什么意义。
relpagesdouble precision以页(大小为BLCKSZ)为单位的该表在磁盘上的大小,它只是优化器用的一个近似值。
reltuplesdouble precision表中行的数目,只是优化器使用的一个估计值。
relallvisibleinteger被标识为全可见的表中的页的数量。此字段是优化器用来做SQL执行优化使用的。VACUUM、ANALYZE和一些DDL语句(例如,CREATE INDEX)会引起此字段更新。
reltoastrelidoid与该表关联的TOAST表的OID ,如果没有则为0。TOAST表在一个从属表里“离线”存储大字段。
reltoastidxidoid对于TOAST表是它的索引的OID,如果不是TOAST表则为0。
relhasindexboolean如果它是一个表而且至少有(或者最近有过)一个索引,则为真。它是由CREATE INDEX设置的,但DROP INDEX不会立即将它清除。如果VACUUM线程检测一个表没有索引,将会把它将清理relhasindex字段,将值设置为假。
relissharedboolean如果该表在整个集群中由所有数据库共享则为真,否则为假。只有某些系统表(比如pg_database)是共享的。
relpersistence"char"- p:表示永久表。
  • u:表示非日志表。
  • t:表示临时表。
  • g:表示全局临时表。 | | relkind | "char" | - r:表示普通表。
  • i:表示索引。
  • G:表示全局二级索引。
  • S:表示序列。
  • v:表示视图。
  • t:表示TOAST表。
  • f:表示外表。
  • m:表示物化视图。
  • e:表示STREAM对象。
  • o:表示CONTVIEW对象。 | | relnatts | smallint | 关系中用户字段数目(除了系统字段以外)。在12.2.15.26 PG_ATTRIBUTE里肯定有相同数目对应行。 | | relchecks | smallint | 表里的检查约束的数目,参阅12.2.15.30 PG_CONSTRAINT表。 | | relhasoids | boolean | 如果为关系中每行都生成一个OID则为真,否则为假。 | | relhaspkey | boolean | 如果这个表有一个(或者曾经有一个)主键,则为真,否则为假。 | | relhasrules | boolean | 如表有规则就为真。是否有规则可参考系统表12.2.15.63 PG_REWRITE。 | | relhastriggers | boolean | True表示表中有触发器,或者曾经有过触发器。系统表12.2.15.72 PG_TRIGGER中记录了表和视图的触发器。 | | relhassubclass | boolean | 如果有(或者曾经有)任何继承的子表,为真,否则为假。 | | relcmprs | tinyint | 表示是否启用表的压缩特性。需要特别注意,当且仅当批量插入才会触发压缩,普通的CRUD并不能够触发压缩。- 0表示其他不支持压缩的表(主要是指系统表,不支持压缩属性的修改操作)。
  • 1表示表数据的压缩特性为NOCOMPRESS或者无指定关键字。
  • 2表示表数据的压缩特性为COMPRESS。 | | relrowmovement | boolean | 针对分区表进行update操作时,是否允许行迁移。- true:表示允许行迁移。
  • false:表示不允许行迁移。 | | parttype | "char" | 表或者索引是否具有分区表的性质。- p:表示带有分区表性质。
  • n:表示没有分区表特性。 | | relfrozenxid | xid32 | 该表中所有在这个之前的事务ID已经被一个固定的("frozen")事务ID替换。该字段用于跟踪该表是否需要为了防止事务ID重叠(或者允许收缩pg_clog)而进行清理。如果该关系不是表则为零(InvalidTransactionId)。为保持前向兼容,保留此字段,新增relfrozenxid64用于记录此信息。 | | relacl | aclitem[] | 访问权限。aclitem类型说明可以参考aclitem类型。查询的回显结果为以下形式:| ``` user1=privs/user2 表示user2赋予user1的权限为privs
| -------------------------------------------------- || ```
=privs/user3 表示user3赋予public角色的权限为privs 
``` |
| ------------------------------------------------ |其中user1、user2和user3为数据库中已存在的用户/角色名,privs为数据库中支持的权限。权限的参数说明请参见[表2](https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/devg-dist/gaussdb-12-0931.html#ZH-CN_TOPIC_0000001865586764__zh-cn_topic_0000001656059264_zh-cn_topic_0059778035_td89f8f6cc98f4a11a08b3c45d852a6cc)。 |
| reloptions     | text[]          | 表或索引的访问方法,使用"keyword=value"格式的字符串。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| relreplident   | "char"           | 逻辑解码中解码列的标识:-   d:默认 (主键,如果存在)。
-   n:无。
-   f:所有列。
-   i:索引的indisreplident被设置或者为默认。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| relfrozenxid64 | xid              | 该表中所有在这个之前的事务ID已经被一个固定的("frozen")事务ID替换。该字段用于跟踪该表是否需要为了防止事务ID重叠(或者允许收缩pg_clog)而进行清理。如果该关系不是表则为零(InvalidTransactionId)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| relbucket      | oid              | 当前表是否包含hash bucket分片。有效的OID指向pg_hashbucket表中记录的具体分片信息。NULL表示不包含hash bucket分片。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| relbucketkey   | int2vector       | 表示hash分区列信息,NULL表示不包含。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| 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     |
| * | 给前面权限的授权选项 |

更多详情请参考GaussDB 文档中心:<https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/productdesc/qlh_03_0001.html>