|
oid oid
行标识符
|
|
typname name
数据类型的名字
|
|
typnamespace oid (引用 pg_namespace.oid)
包含此类型的名字空间的OID
|
|
typowner oid (引用 pg_authid.oid)
类型的拥有者
|
|
typlen int2
对于一个固定尺寸的类型,typlen是该类型内部表示的字节数。 对于一个变长类型,typlen为负值。 -1表示一个“varlena”类型(具有长度字),-2表示一个以空值结尾的C字符串。
|
|
typbyval bool
typbyval判断内部例程传递这个类型的数值时是通过传值还是传引用。 如果typlen不是1、2或4(或者在Datum为8字节的机器上为8),因此typbyval最好是假。 变长类型总是传引用。注意即使长度允许传值, typbyval也可以为假。
|
|
typtype char
typtype可以是: b表示一个基类型, c表示一个复合类型(例如一个表的行类型), d表示一个域, e表示一个枚举类型, p表示一个伪类型, r表示一个范围类型,或 m表示一个多范围类型。 另请参阅typrelid和typbasetype。
|
|
typcategory char
typcategory是一种任意的数据类型分类,它被分析器用来决定哪种隐式转换“更好”。参见Table 52.70。
|
|
typispreferred bool
如果此类型在它的typcategory中是一个更好的转换目标,此列为真
|
|
typisdefined bool
如果此类型已被定义则为真,如果此类型只是一个表示还未定义类型的占位符则为假。 当typisdefined为假,除了类型名字、名字空间和OID之外什么都不能被依赖。
|
|
typdelim char
在分析数组输入时,分隔两个此类型值的字符。注意该分隔符是与数组元素数据类型相关联的, 而不是和数组的数据类型关联。
|
|
typrelid oid (引用 pg_class.oid)
如果这是一个复合类型(见typtype),那么此列指向pg_class中定义对应表的项 (对于自由存在的复合类型,pg_class项并不表示一个表,但不管怎样该类型的pg_attribute项需要链接到它)。 对非复合类型此列为零。
|
|
typsubscript regproc (引用 pg_proc.oid)
下标处理函数的 OID,如果该类型不支持下标则为零。 “真正的”数组类型的 typsubscript = array_subscript_handler,但其他类型也可能使用不同的处理函数来实现特定的下标行为。
|
|
typelem oid (参考 pg_type.oid)
如果typelem不为零,则它标识pg_type中的另一行,该行定义了下标操作产生的类型。 如果typsubscript为零则该项为零。 但是,当typsubscript不为零时它也可以为零,如果处理机不需要typelem来决定下标结果类型。 注意typelem依赖被认为是表示该类型中的元素类型的物理包含;所以这个元素类型上的DDL变更可能会受到该类型存在的限制。
|
|
typarray oid (参考 pg_type.oid)
如果typarray不是零,则它标识pg_type中的另一行,这一行是一个将此类型作为元素的“真的”数组类型
|
|
typinput regproc (引用 pg_proc.oid)
输入转换函数(文本格式)
|
|
typoutput regproc (引用 pg_proc.oid)
输出转换函数(文本格式)
|
|
typreceive regproc (引用 pg_proc.oid)
输入转换函数(二进制格式),如果没有则为零
|
|
typsend regproc (参考 pg_proc.oid)
输出转换函数(二进制格式),如果没有则为零
|
|
typmodin regproc (参考 pg_proc.oid)
类型修改器输入函数,如果类型没有提供修改器则为零
|
|
typmodout regproc (参考 pg_proc.oid)
类型修改器输出函数,或为零以使用标准格式
|
|
typanalyze regproc (参考 pg_proc.oid)
自定义ANALYZE函数,零表示使用标准函数
|
|
typalign char
typalign表示存储此类型值时所要求的对齐方式。 它适用于磁盘存储,以及该值在 PostgreSQL 内部的大多数表示形式。 当多个值连续存放时,例如在磁盘上完整行的表示中,这种类型的数据前会插入填充,使其从指定边界开始。 对齐参考点是该序列中第一个数据的起始位置。 可能的值为:
|
|
typstorage char
如果一个变长类型(typlen = -1)可被TOAST,typstorage说明这种类型的列应采取的默认策略。 可能的值是:
-
p (普通的): 值必须始终以普通方式存储(非varlena类型总是使用这个值)。
-
e (外部的): 值可以存储在一个次要 “TOAST” 关系中 (如果有一个关系, 参见pg_class.reltoastrelid).
-
m (主要的): 值可以被压缩并内联存储。
-
x (扩展的): 值可以被压缩和/或移动到次要关系。
x 是 toast-able 类型的常用选项。 注意m值也可以被移动到二级存储,但只能作为最后手段(e和x值会先被移动)。
|
|
typnotnull bool
typnotnull表示类型上的一个非空约束。只用于域。
|
|
typbasetype oid (引用 pg_type.oid)
如果这是一个域(见typtype),则typbasetype标识该域所基于的类型。如果此类型不是域,则为 0。
|
|
typtypmod int4
域使用typtypmod来记录被应用于它们基类型的typmod(如果基类型不使用typmod,则为-1)。如果此类型不是一个域则为-1。
|
|
typndims int4
对于基于数组的域,typndims是数组维度数(即,typbasetype是一个数组类型)。对于不是基于数组的域的类型,此列为零。
|
|
typcollation oid (引用 pg_collation.oid)
typcollation指定此类型的排序规则。如果类型不支持排序规则,此列为零。 支持排序规则的基类型在这里会有一个非零值,典型值为DEFAULT_COLLATION_OID。 基于可应用排序规则类型的域,如果为其指定了排序规则 OID,则它的排序规则 OID 可以不同于其基类型。
|
|
typdefaultbin pg_node_tree
如果typdefaultbin非空,那么它就是该类型默认表达式的nodeToString()表示形式。此列只用于域。
|
|
typdefault text
如果某类型没有相关默认值,那么typdefault为空。如果typdefaultbin不为空,那么typdefault必须包含由typdefaultbin表示的默认表达式的人类可读版本。 如果typdefaultbin为空而typdefault不为空,则typdefault是该类型默认值的外部表示形式,它可以被交给该类型的输入转换器来产生一个常量。
|
|
typacl aclitem[]
访问权限,另请参阅Section 5.10
|