历史版本。 PostgreSQL 7.1 已结束支持。 请参阅 当前版本手册.
3.16. pg_type #
表 3.16. pg_type 列
| 名称 | 类型 | 引用 | 描述 |
|---|---|---|---|
| typname | name | 数据类型的名字 | |
| typowner | int4 | pg_shadow.usesysid | 类型的所有者(创建者) |
| typlen | int2 | 该类型存储表示的长度,变长则为 -1 | |
| typprtlen | int2 | 未使用 | |
| typbyval | bool | typbyval 决定内部例程按值还是按引用传递该类型的值。只有等价于 char、short 和 int 的项可以按值传递,因此如果类型长度不是 1、2 或 4 字节,Postgres 就没有按值传递的选项,因此 typbyval 最好为假。变长类型总是按引用传递。注意,即使长度允许按值传递,typbyval 也可以为假;例如 float4 类型目前就是这样。 | |
| typtype | char | typtype 为 b 表示基本类型,c 表示目录类型(即表)。如果 typtype 为 c,则 typrelid 是该类型在 pg_class 中项的 OID。 | |
| typisdefined | bool | ??? | |
| typdelim | char | 解析数组输入时分隔该类型的两个值的字符 | |
| typrelid | oid | pg_class.oid | 如果这是目录类型(见 typtype),此字段指向定义相应表的 pg_class 项。理论上表可以用作复合数据类型,但这并不是完全可用的。 |
| typelem | oid | pg_type.oid | 如果 typelem 不为 0,它就标识 pg_type 中的另一行。当前类型于是可以像数组那样带下标,产生 typelem 类型的值。非零的 typelem 并不保证该类型是“真正的”数组类型;某些普通的定长类型也可以带下标(例如 oidvector)。变长类型不能像那样被变成伪数组。因此,判断一个类型是否为“真正的”数组类型的方法是 typelem != 0 且 typlen < 0。 |
| typinput | regproc | 输入函数 | |
| typoutput | regproc | 输出函数 | |
| typreceive | regproc | 未使用 | |
| typsend | regproc | 未使用 | |
| typalign | char | 可能的取值有:
注意 对于系统表中使用的类型,在 | |
| typstorage | char |
注意 'm' 列也可以移出到二级存储,但只作为最后手段('e' 和 'x' 列会先被移动)。 | |
| typdefault | text | ??? |