PG_TYPE
PG_TYPE系统表存储数据类型的相关信息。
名称 |
类型 |
描述 |
---|---|---|
typname |
name |
数据类型名称。 |
typnamespace |
oid |
此类型所在的命名空间的OID。 |
typowner |
oid |
此类型的所有者。 |
typlen |
smallint |
对于定长类型是该类型内部表现形式的字节数。对于变长类型typlen为负值。
|
typbyval |
boolean |
指定内部传递这个类型的数值时是传值还是传引用。如果该类型的TYPLEN不是1,2,4,8, TYPBYVAL最好为假。变长类型通常是传引用。即使TYPLEN允许传值,TYPBYVAL也可以为假。 |
typtype |
"char" |
参见typrelid和typbasetype。 |
typcategory |
"char" |
数据类型的模糊分类,可用于解析器使用的数据转换依据。 |
typispreferred |
boolean |
如果为真,则数据符合TYPCATEGORY所指定的转换规则时进行转换。 |
typisdefined |
boolean |
如果定义了类型,则为真。如果是一种尚未定义的类型的占位符,则为假。如果为假,则除了该类型名称,命名空间和OID之外没有可依赖的对象。 |
typdelim |
"char" |
分析数组输入时,分隔两个此类型数值的字符。请注意,分隔符是与数组元素数据类型相关联,而不是与数组数据类型相关联。 |
typrelid |
oid |
如果是复合类型(请参见typtype),则此字段指向pg_class中定义该表的行。对于独立的复合类型,pg_class记录并不表示一个表,但是总需要它来查找该类型连接的pg_attribute记录。非复合类型为0。 |
typelem |
oid |
如果不为0,则它标识pg_type中的另一行。当前类型可以像一个产生类型为typelem的数组来描述。“true”数组类型是变长的(typlen= -1),但是某些定长(typlen > 0)类型也有非零的typelem(比如name和point)。如果一个定长类型有typelem ,则其内部形式必须是typelem数据类型的某个数目的个数值,不能有其他数据。变长数组类型有一个该数组子过程定义的头(文件)。 |
typarray |
oid |
如果不为0,则表示在pg_type中有对应的类型记录。 |
typinput |
regproc |
输入转换函数(文本格式)。 |
typoutput |
regproc |
输出转换函数(文本格式)。 |
typreceive |
regproc |
输入转换函数(二进制格式),如果没有则为0。 |
typsend |
regproc |
输出转换函数(二进制格式),如果没有则为0。 |
typmodin |
regproc |
输入类型修改符函数,如果为0,则不支持。 |
typmodout |
regproc |
输出类型修改符函数,如果为0,则不支持。 |
typanalyze |
regproc |
自定义的ANALYZE函数,如果使用标准函数,则为0。 |
typalign |
"char" |
当存储此类型的数值时要求的对齐方式。适用于磁盘存储以及该值在数据库中的大多数形式。如果数值是连续存储的,比如在磁盘上以完全的裸数据的形式存放时,则先在此类型的数据前填充空白,这样它就可以按照要求的边界存储。对齐引用是该序列中第一个数据的开头。可能的值包含:
须知:
对于系统表里使用的类型,在pg_type里定义的尺寸和对齐方式要和编译器在表示表行的结构中布局方式保持一致。 |
typstorage |
"char" |
指明一个变长类型(那些有typlen = -1)是否准备好应付非常规值,以及对这种属性的类型的缺省策略是什么。可能的值包含:
须知:
m域也可以移到从属表里存储,但只是最后的解决方法(首先移动e和x域)。 |
typenotnull |
boolean |
表示在某类型上的一个NOTNULL约束。目前只用于域。 |
typbasetype |
oid |
如果这是一个衍生类型(请参见typtype),则该标识作为这个类型的基础的类型。如果不是衍生类型则为零。 |
typtypmod |
integer |
域使用typtypmod记录要应用于其基础类型上的typmod(如果基础类型不使用typmod,则为-1)。如果此类型不是域,则为-1。 |
typndims |
integer |
如果一个域是数组,则typndims是数组维数的数值(即typbasetype是一个数组类型;域的typelem将匹配基本类型的typelem)。除了数组类型的域以外的类型为0。 |
typcollation |
oid |
指定类型的排序规则。如果为0,则表示不支持排序规则。 |
typdefaultbin |
pg_node_tree |
如果不为NULL,则为该类型缺省表达式的nodeToString() 表现形式。目前这个字段只用于域。 |
typdefault |
text |
如果某类型没有相关缺省值,则为NULL。如果typdefaultbin不为NULL,则typdefault必须包含一个typdefaultbin代表的缺省表达式的人类可读版本。如果typdefaultbin为NULL但typdefault不为NULL,typdefault则是该类型缺省值的外部表现形式,可以将其输入到类型的转换器生成一个常量。 |
typacl |
aclitem[] |
访问权限。 |