oid oid
Row identifier
|
typname name
Data type name
|
typnamespace oid (references pg_namespace.oid) 包含此类型的命名空间的 OID |
typowner oid (references 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.65。
|
typispreferred bool
如果该类型在其 typcategory 内是优先的转换目标则为真 |
typisdefined bool
如果该类型已定义则为真;如果这是一个尚未定义类型的占位条目
则为假。当 typisdefined 为假时,
除类型名、命名空间和 OID 之外的任何内容都不可靠。
|
typdelim char
解析数组输入时分隔该类型两个值的字符。
注意,分隔符与数组元素数据类型关联,而不是与数组数据类型关联。
|
typrelid oid
(references pg_class.oid)
如果这是一个复合类型(见
typtype),则此列指向定义相应表的
pg_class
条目。(对于独立的复合类型,
pg_class
条目并不真正表示一张表,但为了让该类型的
pg_attribute
条目有所链接,仍然需要它。)
对于非复合类型则为零。
|
typsubscript regproc
(references pg_proc.oid)
下标处理函数的 OID;如果该类型不支持下标则为零。
“真正的”数组类型的
typsubscript
为 array_subscript_handler,
但其他类型可以拥有其他处理函数来实现专门的下标行为。
|
typelem oid
(references pg_type.oid)
如果 typelem 不为零,
则它标识 pg_type 中的另一行,
定义下标操作产生的类型。
如果 typsubscript 为零,
它应当为零。不过,当 typsubscript
不为零时它也可以为零,只要处理程序不需要
typelem 来确定下标结果的类型。
注意,typelem 依赖被认为意味着
元素类型在物理上包含在该类型之中;因此,
该类型的存在可能会限制对元素类型的 DDL 更改。
|
typarray oid
(references pg_type.oid)
如果 typarray 不为零,
则它标识 pg_type 中的另一行,
该行是以此类型为元素的“真正的”数组类型
|
typinput regproc (references pg_proc.oid) 输入转换函数(文本格式) |
typoutput regproc (references pg_proc.oid) 输出转换函数(文本格式) |
typreceive regproc (references pg_proc.oid) 输入转换函数(二进制格式),如果没有则为零 |
typsend regproc (references pg_proc.oid) 输出转换函数(二进制格式),如果没有则为零 |
typmodin regproc
(references pg_proc.oid)
类型修饰符输入函数;如果该类型不支持修饰符则为零 |
typmodout regproc
(references pg_proc.oid)
类型修饰符输出函数;如果为零则使用标准格式 |
typanalyze regproc (references pg_proc.oid) 自定义的 ANALYZE 函数,为零则使用标准函数 |
typalign char
typalign 是存储该类型的值时
所需的对齐。它既适用于磁盘上的存储,
也适用于 PostgreSQL 内部该值的
大多数表示形式。当多个值连续存储时
(例如磁盘上一行的完整表示),
会在该类型的数据之前插入填充,使其从指定的边界开始。
对齐参考是序列中第一个数据的起始位置。
可能的取值有:
c = char 对齐,即不需要对齐。
s = short alignment (2 bytes on most machines).
i = int alignment (4 bytes on most machines).
d = double 对齐(在许多机器上是 8 字节,但绝非所有机器都是如此)。
|
typstorage char
typstorage 说明对于 varlena 类型
(typlen = -1 的类型),
该类型是否已为 TOAST 做好准备,
以及该类型属性的默认策略应当是什么。
可能的取值有:
p(plain):值必须总是以普通方式存储
(非 varlena 类型总是使用此值)。
e(外部):值可以存储在一个次要的
“TOAST” 关系中
(如果该关系有的话,参见
pg_class.reltoastrelid)。
m (main): Values can be compressed and stored
inline.
x(扩展的):值可以被压缩并且/或者被移动到一个二级关系中。
x is the usual choice for toast-able types.
Note that m values can also be moved out to
secondary storage, but only as a last resort (e
and x values are moved first).
|
typnotnull bool
typnotnull 表示类型上的一个非空约束。仅用于域。 |
typbasetype oid
(references pg_type.oid)
如果这是一个域(见
typtype),则
typbasetype 标识该域所基于的类型。
如果该类型不是域则为零。
|
typtypmod int4
域使用 typtypmod 记录要应用于
其基类型的 typmod
(如果基类型不使用 typmod 则为 -1)。
如果该类型不是域则为 -1。
|
typndims int4
typndims 是数组之上的域的
数组维数(即 typbasetype
是一个数组类型)。
对于数组类型域之外的其他类型则为零。
|
typcollation oid
(references pg_collation.oid)
typcollation 指定该类型的排序规则。
如果该类型不支持排序规则,则为零。
支持排序规则的基本类型在这里会有一个非零值,
通常是 DEFAULT_COLLATION_OID。
可排序类型之上的域可以拥有与其基类型不同的排序规则 OID,
前提是为该域指定了一个。
|
typdefaultbin pg_node_tree
如果 typdefaultbin 不为空,
它是该类型默认表达式的
nodeToString()
表示形式。它只用于域。
|
typdefault text
如果该类型没有关联的默认值,
则 typdefault 为空。
如果 typdefaultbin 不为空,
则 typdefault 必须包含
typdefaultbin 所表示默认表达式的
人类可读版本。如果
typdefaultbin 为空而
typdefault 不为空,
则 typdefault 是该类型默认值的
外在表示,可以把它提供给该类型的输入转换器来产生一个常量。
|
typacl aclitem[] 访问特权;详见 Section 5.8 |