VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

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 如果该表在Vastbase中由所有数据库共享则为真。只有某些系统表(比如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则为真。
    relhassecids boolean 表示表上是否应用了安全标记(强制访问控制功能)
    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" 表或者索引是否具有分区表的性质。
  • a:表示PG风格的分区表。
  • b:表示PG风格的子分区表。
  • 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
    reloptions text[] 表或索引的访问方法,使用keyword=value格式的字符串。
    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)。
    relrewrite oid 当ALTER TABLE语句需要重写表时,该字段为重写目标表的OID,其余情况该字段为0(InvalidOid)。

    表 2 权限的参数说明

    参数 参数说明
    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
    * 给前面权限的授权选项