原 Greenplum中的pg_class视图
Tags: 原创GreenPlumGPDB 7系统视图GPDB 6pg_classrelstorage
简介
系统目录表pg_class记录表以及其他大部分具有列或者与表(也称为关系)相似的东西。 这包括索引(另见pg_index)、序列、视图、组合类型和TOAST表。 并不是所有的列对所有的关系类型都有意义。
列 | 类型 | 参考 | 描述 |
---|---|---|---|
relname | name | 表、索引、视图等的名字。 | |
relnamespace | oid | pg_namespace.oid | 包含这个关系的命名空间(schema)的OID |
reltype | oid | pg_type.oid | 如果有的话(索引为0,没有pg_type项),对应与此表的行类型的数据类型的OID |
reloftype | oid | pg_type.oid | pg_type中条目的OID,用于隐含的复合类型。 |
relowner | oid | pg_authid.oid | 关系的所有者 |
relam | oid | pg_am.oid | 如果这是一个索引,则表示访问方法(B树、位图、哈希等。) |
relfilenode | oid | 此关系的磁盘文件的名称,如果没有则为0。 | |
reltablespace | oid | pg_tablespace.oid | 存储此关系的表空间。 如果为0,则表示数据库的默认表空间(如果关系没有磁盘文件,则无意义)。The tablespace in which this relation is stored. If zero, the |
relpages | int4 | 该表的磁盘尺寸,以页面为单位(每页32k)。 这只是优化器使用的估计值。 它由VACUUM、ANALYZE和一些DDL命令更新。 | |
reltuples | float4 | 表中的行数。 这只是优化器使用的估计值。 它由VACUUM、ANALYZE和一些DDL命令更新。 | |
relallvisible | int32 | 全部可见块的数量(此值可能不是最新的)。 | |
reltoastrelid | oid | pg_class.oid | 与这张表关联的TOAST表的OID,没有的就为0。 TOAST表在辅助表中存储“行溢出”的大型属性。 |
relhasindex | boolean | 如果这是一个表并且它(或最近有)任何索引,则为True。 这由CREATE INDEX设置,但不会立即由DROP INDEX清除。 如果发现表没有索引,VACUUM将清除。 | |
relisshared | boolean | 如果此表在系统中的所有数据库之间共享,则为True。 仅共享某些系统目录表。 | |
relpersistence | char | 对象持久性的类型:p =堆或追加优化表,u =未记录的临时表,t =临时表。 | |
relkind | char | 对象的类型r = 堆或追加优化表, i = 索引,S = 序列,t = TOAST值,v = 视图,c = 组合类型, f = 外部表,u = 未登记的临时堆表, o = 内部追加优化的segment文件和EOF, b = 追加的块目录,M = 追加的可视化映射,m为物化视图 | |
relstorage | char | 表的存储模式a= 追加优化,c= 面向列的,h = 堆表, v = 虚拟,x= 外部表。 | |
relnatts | int2 | 关系中用户列的数量(系统列不计入)。 pg_attribute中必须有这么多个相应的项。 | |
relchecks | int2 | 表中检查约束的个数。 | |
relhasoids | boolean | 如果为关系的每一行生成OID,则为True。 | |
relhaspkey | boolean | 如果表具有(或曾经拥有)主键,则为True。 | |
relhasrules | boolean | 如果表有规则,则为True。 | |
relhastriggers | boolean | 如果表有(或曾经有)触发器,则为True。 | |
relhassubclass | boolean | 如果表具有(或曾经有)任何继承子项,则为True。 | |
relispopulated | boolean | 如果关系被填充,则为真(对于除某些物化视图之外的所有关系都是如此)。 | |
relreplident | char | 用于为行形成“副本标识”的列:d =默认(主键,如果有),n =无,f =所有列 i =具有indisreplident设置的索引,或默认值 | |
relfrozenxid | xid | 此表中该值之前的所有事务ID都已替换为此表中的永久(冻结)事务ID。 这用于跟踪表是否需要被清理以防止事务ID环绕或允许pg_clog收缩。如果关系不是表,或者表不需要清理以防止事务ID环绕,则值为0(InvalidTransactionId)。 该表仍可能需要清理才能回收磁盘空间。 | |
relminmxid | xid | 此表中该值之前的所有multixact ID都已被此表中的事务ID替换。 这用于跟踪表是否需要被清理以防止多重ID环绕或允许pg_multixact收缩。 如果关系不是表,则为零(InvalidMultiXactId)。 | |
relacl | aclitem[] | GRANT和REVOKE分配的访问权限。 | |
reloptions | text[] | 特定于访问方法的选项,作为“keyword = value”字符串。 |
GP6和GP7中的pg_class对比
GP6 | GP7 |
---|---|
relacl | relacl |
relallvisible | relallvisible |
relam | relam |
relchecks | relchecks |
relfilenode | relfilenode |
relforcerowsecurity | |
relfrozenxid | relfrozenxid |
relhasindex | relhasindex |
relhasoids | |
relhaspkey | |
relhasrules | relhasrules |
relhassubclass | relhassubclass |
relhastriggers | relhastriggers |
relispartition | |
relispopulated | relispopulated |
relisshared | relisshared |
relkind | relkind |
relminmxid | relminmxid |
relname | relname |
relnamespace | relnamespace |
relnatts | relnatts |
reloftype | reloftype |
reloptions | reloptions |
relowner | relowner |
relpages | relpages |
relpartbound | |
relpersistence | relpersistence |
relreplident | relreplident |
relstorage | relrewrite |
relrowsecurity | |
reltablespace | reltablespace |
reltoastrelid | reltoastrelid |
reltuples | reltuples |
reltype | reltype |
其它
PG中对应的pg_class视图请参考:https://www.dbaup.com/pgzhongdexitongbiaohexitongshitushujuzidian.html#pg_class
总结
1、PG中的pg_class是没有relstorage字段的