PG_ATTRDEF
存储列的默认值。

名称

类型

描述

ADRELID

OID

该列的所属表

ADNUM

INTEGER

该列的数目

ADBIN

PG_NODE_TREE

字段缺省值的内部表现形式

ADSRC

TEXT

人类可读的缺省值的内部表现形式

PG_ATTRIBUTE
存储表关于表字段的信息。

名称

类型

描述

ATTRELID

OID

此字段所属表。

ATTNAME

NAME

字段名。

ATTTYPID

OID

字段类型。

ATTSTATTARGET

INTEGER

控制ANALYZE为这个字段积累的统计细节的级别。

零值表示不收集统计信息。

负数表示使用系统缺省的统计对象。

正数值的确切信息是和数据类型相关的。

对于标量数据类型,ATTSTATTARGET既是要收集的"最常用数值"的目标数目,也是要创建的柱状图的目标数量。

ATTLEN

SMALLINT

是本字段类型的pg_type.typlen的拷贝。

ATTNUM

SMALLINT

字段数目。

ATTNDIMS

INTEGER

如果该字段是数组,则是维数,否则是0 。

ATTCACHEOFF

INTEGER

在磁盘上的时候总是-1 ,但是如果加载入内存中的行描述器中,它可能会被更新以缓冲在行中字段的偏移量。

ATTTYPMOD

INTEGER

记录创建新表时支持的类型特定的数据(比如一个varchar字段的最大长度)。它传递给类型相关的输入和长度转换函数当做第三个参数。其值对那些不需要ATTTYPMOD的类型通常为-1。

ATTBYVAL

BOOLEAN

这个字段类型的pg_type.typbyval的拷贝。

ATTSTORAGE

"CHAR"

这个字段类型的pg_type.typstorage的拷贝。

ATTALIGN

"CHAR"

这个字段类型的pg_type.typalign的拷贝。

ATTNOTNULL

BOOLEAN

这代表一个非空约束。可以改变这个字段以打开或者关闭这个约束。

ATTHASDEF

BOOLEAN

这个字段有一个缺省值,此时它对应pg_attrdef表里实际定义此值的记录。

ATTISDROPED

BOOLEAN

这个字段已经被删除了,不再有效。一个已经删除的字段物理上仍然存在表中,但会被分析器忽略,因此不能再通过SQL访问。

ATTISLOCAL

BOOLEAN

这个字段是局部定义在关系中的。请注意一个字段可以同时是局部定义和继承的。

ATTINHCOUNT

PG_ATTRIBUTE

这个字段所拥有的直接祖先的个数。如果一个字段的祖先个数非零,则它就不能被删除或重命名。

ATTCOLLATION

OID

对此列定义的校对列。

ATTACL

ACLITEM[]

列级访问权限控制。

ATTOPTIONS

TEXT[]

属性级可选项。

ATTFDWOPTIONS

TEXT[]

属性级外数据选项。

PG_AUTHID
存储有关数据库认证标识符(角色)的信息。

名称

类型

描述

ROLNAME

NAME

角色名称。

ROLSUPER

BOOLEAN

角色是否拥有系统管理员权限。

ROLINHERIT

BOOLEAN

角色是否自动继承其所属角色的权限。

ROLCREATEROLE

BOOLEAN

角色是否可以创建更多角色。

ROLCREATEDB

BOOLEAN

角色是否可以创建数据库。

ROLCATUPDATE

BOOLEAN

角色是否可以直接更新系统表。如果没有设置这个字段为真,即使系统管理员也不能这么做。

ROLCANLOGIN

BOOLEAN

角色是否可以登录,也就是说,这个角色可以给予会话认证标识符。

ROLREPLICATION

BOOLEAN

角色是一个复制的角色(适配作用,没有实际的功能)。

ROLAUDITADMIN

BOOLEAN

审计用户。

ROLCONNLIMIT

INTEGER

对于可以登录的角色,限制其最大并发连接数量。

-1 表示没有限制。

ROLPASSWORD

TEXT

口令(可能是加密的),如果没有口令,则为NULL。

ROLVALIDUNTIL

TIMESTAMP WITH TIME ZONE

口令失效时间(只用于口令认证),如果没有失效期,则为NULL。

ROLCONFIG

TEXT[]

运行时配置变量的会话缺省。

PG_AUTH_MEMBERS
存储显示角色之间的成员关系。

名称

类型

描述

ROLEID

OID

拥有成员的角色ID。

MEMBER

OID

属于ROLEID角色的一个成员的角色ID。

GRANTOR

OID

赋予此成员关系的角色ID。

ADMIN_OPTION

BOOLEAN

如果MEMBER可以把ROLEID角色的成员关系赋予其他角色,则为真。

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

名称

类型

描述

RELNAME

NAME

表、索引、视图等对象的名字。

RELNAMESPACE

OID

包含这个关系的名字空间的OID。

RELTYPE

OID

对应这个表的行类型的数据类型(索引为零,因为索引没有pg_type记录)。

RELOWNER

OID

关系所有者。

RELAM

OID

如果行是索引,则就是所用的访问模式(B-tree,hash等)。

RELFILENODE

OID

这个关系在磁盘上的文件的名称,如果没有则为0。

RELTABLESPACE

OID

这个关系存储所在的表空间。如果为零,则意味着使用该数据库的缺省表空间。如果关系在磁盘上没有文件,则这个字段没有什么意义。

RELPAGES

INTEGER

以页(大小为BLCKSZ)为单位的此表在磁盘上的大小,它只是规划器用的一个近似值。

RELTUPLES

REAL

表中行的数目,只是规划器使用的一个估计值。

RELTOASTRELID

OID

与此表关联的TOAST表的OID ,如果没有则为0。

TOAST表在一个从属表里“离线”存储大字段。

RELTOASTIDXID

OID

对于TOAST表是它的索引的OID,如果不是TOAST表则为0。

RELHASINDEX

BOOLEAN

如果它是一个表而且至少有(或者最近有过)一个索引,则为真。

它是由CREATE INDEX设置的,但DROP INDEX不会立即将它清除。如果VACUUM进程检测一个表没有索引,将会把它将清理relhasindex字段,将值设置为假。

RELISSHARED

BOOLEAN

如果该表在整个集群中由所有数据库共享则为真。只有某些系统表(比如pg_database)是共享的。

RELKIND

CHAR

r=普通表

i=索引

S=序列

v=视图

c=复合类型

t=TOAST表

RELNATTS

SMALLINT

关系中用户字段数目(除了系统字段以外)。在pg_attribute里肯定有相同数目对应行。

RELCHECKS

SMALLINT

表里的检查约束的数目;参阅pg_constraint表。

RELTRIGGERS

SMALLINT

表里的触发器的数目;参阅pg_trigger表。

RELUKEYS

SMALLINT

未使用(不是唯一值的数目)。

RELFKEYS

SMALLINT

未使用(不是表中外键的数目)。

RELREFS

SMALLINT

未使用。

RELHASOIDS

BOOLEAN

如果为关系中每行都生成一个OID则为真。

RELHASPKEY

BOOLEAN

如果这个表有一个(或者曾经有一个)主键,则为真。

RELHASRULES

BOOLEAN

如表有规则就为真。是否有规则可参考系统表PG_REWRITE。

RELHASSUBCLASS

BOOLEAN

如果有(或者曾经有)任何继承的子表,为真。

RELROWMOVEMENT

BOOLEAN

针对分区表进行update操作时,是否允许行迁移。

true:表示允许行迁移。

false:表示不允许行迁移。

RELFROZENXID

XID

该表中所有在这个之前的事务ID已经被一个固定的("frozen")事务ID替换。这个字段用于跟踪该表是否需要为了防止事务ID重叠(或者允许收缩pg_clog)而进行清理。如果该关系不是表则为零(InvalidTransactionId)。

RELACL

ACLITEM[]

访问权限。参阅GRANT和REVOKE获取详细信息。

RELOPTIONS

TEXT[]

索引的访问方法,使用"keyword=value"格式的字符串。

PG_CONSTRAINT
存储表上的检查约束、主键、唯一约束和外键约束。

名称

类型

描述

CONNAME

NAME

约束名字(不一定是唯一的)。

CONNAMESPACE

OID

包含这个约束的名字空间的OID。

CONTYPE

"CHAR"

c = 检查约束

f = 外键约束

p = 主键约束

u = 唯一约束

CONDEFERRABLE

BOOLEAN

这个约束是否可以推迟。

CONDEFERRED

BOOLEAN

缺省时这个约束是否可以推迟。

CONRELID

OID

这个约束所在的表;如果不是表约束则为0。

CONTYPEID

OID

这个约束所在的域;如果不是一个域约束则为0。

CONFRELID

OID

如果是外键,则为参考的表;否则为0。

CONFUPDTYPE

"CHAR"

外键更新动作代码。

a = 没动作

r = 限制

c = 级联

n =设置为null

d =设置为缺省

CONFDELTYPE

"CHAR"

外键删除动作代码。

a = 没动作

r = 限制

c = 级联

n =设置为null

d =设置为缺省

CONFMATCHTYPE

"CHAR"

外键匹配类型。

f = 全部

p = 部分

u = 简单(未指定)

CONKEY

SMALLINT[]

如果是表约束,则是约束控制的字段列表。

CONFKEY

SMALLINT[]

如果是一个外键,是参考的字段的列表。

CONBIN

PG_NODE_TREE

如果是检查约束,那就是其表达式的内部形式。

CONSRC

TEXT

如果是检查约束,则是表达式的人类可读形式。

PG_CURSORS
列出了当前可用的游标。

名称

类型

描述

NAME

TEXT

游标名。

STATEMENT

TEXT

声明改游标时的查询语句。

IS_HOLDABLE

BOOLEAN

如果该游标是持久的(就是在声明该游标的事务结束后仍然可以访问该游标)则为TRUE,否则为FALSE。

IS_BINARY

BOOLEAN

如果该游标被声明为BINARY则为TRUE,否则为FALSE。

IS_SCROLLABLE

BOOLEAN

如果该游标可以滚动(就是允许以不连续的方式检索)则为TRUE,否则为FALSE。

CREATION_TIME

TIMESTAMP WITH TIME ZONE

声明该游标的时间戳。

PG_DATABASE
存储关于可用数据库的信息。

名称

类型

描述

DATNAME

NAME

数据库名字。

DATDBA

OID

数据库所有人,通常为其创建者。

ENCODING

INTEGER

数据库的字符编码方式。

DATCOLLATE

NAME

数据库使用的排序顺序。

DATCTYPE

NAME

数据库使用的字符分类。

DATISTEMPLATE

BOOLEAN

是否允许作为模板数据库。

DATALLOWCONN

BOOLEAN

如果为假,则没有用户可以连接到这个数据库。这个字段用于保护template0数据库不被更改。

DATCONNLIMIT

INTEGER

该数据库上允许的最大并发连接数,-1表示无限制。

DATLASTSYSOID

OID

数据库里最后一个系统OID 。

DATFROZENXID

XID

用于跟踪该数据库是否需要为了防止事务ID重叠而进行清理。

DATTABLESPACE

OID

数据库的缺省表空间。

DATACL

ACLITEM[]

访问权限。

PG_DB_ROLE_SETTING
存储数据库运行时每个角色与数据绑定的配置项的默认值 。

名称

类型

描述

SETDATABASE

OID

配置项所对应的数据库,如果未指定数据库,则为0。

SETROLE

OID

配置项所对应的角色,如果未指定角色,则为0。

SETCONFIG

TEXT[]

运行时配置项的默认值。

PG_DEFAULT_ACL
存储为新建对象设置的初始权限。

名称

类型

描述

DEFACLROLE

OID

与此权限相关的角色ID。

DEFACLNAMESPACE

OID

与此权限相关的名字空间,如果没有,则为0。

DEFACLOBJTYPE

"CHAR"

此权限的对象类型。

DEFACLACL

ACLITEM[]

创建该类型时所拥有的访问权限。