PG_TYPE系统表存储数据类型的相关信息。
表 1 PG_TYPE字段
名称
类型
描述
oid
行标识符(隐藏属性,必须明确选择)。
typname
name
数据类型名称。
typnamespace
包含这个类型的名称空间的OID。
typowner
该类型的所有者。
typlen
smallint
typbyval
Boolean
指定内部传递这个类型的数值时是传值还是传引用。如果该类型的TYPLEN不是1,2,4,8, TYPBYVAL最好为假。变长类型通常是传引用。即使TYPLEN允许传值,TYPBYVAL也可以为假。
typtype
"char"
参见typrelid和typbasetype。
typcategory
是数据类型的模糊分类,可用于解析器做为数据转换的依据。
typispreferred
如果为真,则数据符合TYPCATEGORY所指定的转换规则时进行转换。
typisdefined
如果定义了类型则为真,如果是一种尚未定义的类型的占位符则为假。如果为假,则除了该类型名称,名称空间和OID之外没有可靠的信息。
typdelim
当分析数组输入时,分隔两个此类型数值的字符请注意该分隔符是与数组元素数据类型相关联的,而不是和数组数据类型关联。
typrelid
如果是复合类型(请参见typtype),则这个字段指向pg_class中定义该表的行。对于自由存在的复合类型,pg_class记录并不表示一个表,但是总需要它来查找该类型连接的pg_attribute记录。对于非复合类型为零。
typelem
如果不为0,则它标识pg_type里面的另外一行。当前类型可以当做一个产生类型为typelem的数组来描述。一个"真正的"数组类型是变长的(typlen= -1),但是一些定长的(typlen > 0)类型也拥有非零的typelem(比如name和point)。如果一个定长类型拥有一个typelem ,则他的内部形式必须是typelem数据类型的某个数目的个数值,不能有其他数据。变长数组类型有一个该数组子过程定义的头(文件)。
typarray
如果不为0,则表示在pg_type中有对应的类型记录。
typinput
regproc
输入转换函数(文本格式)。
typoutput
输出转换函数(文本格式)。
typreceive
输入转换函数(二进制格式),如果没有则为0。
typsend
输出转换函数(二进制格式),如果没有则为0。
typmodin
输入类型修改符函数,如果为0,则不支持。
typmodout
输出类型修改符函数,如果为0,则不支持。
typanalyze
自定义的ANALYZE函数,如果使用标准函数,则为0。
typalign
对于在系统表里使用的类型,在pg_type里定义的尺寸和对齐必须和编译器在一个表示表的一行的结构里的布局一样。
typstorage
m域也可以移到从属表里存储,但只是最后的解决方法(e和x域先移走)。
typenotnull
代表在某类型上的一个NOTNULL约束。目前只用于域。
typbasetype
如果这是一个衍生类型(请参见typtype),则该标识作为这个类型的基础的类型。如果不是衍生类型则为零。
typtypmod
integer
域使用typtypmod记录要作用到它们的基础类型上的typmod(如果基础类型不使用typmod则为-1)。如果这种类型不是域,则为-1。
typndims
如果一个域是数组,则typndims是数组维数的数值(也就是说,typbasetype是一个数组类型;域的typelem将匹配基本类型的typelem)。非域非数组域为零。
typcollation
指定类型的排序规则。如果为0,则表示不支持排序。
typdefaultbin
pg_node_tree
如果为非NULL,则它是该类型缺省表达式的nodeToString() 表现形式。目前这个字段只用于域。
typdefault
text
如果某类型没有相关缺省值,则取值是NULL。
typacl
aclitem[]
访问权限。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型