## 52.62.`pg_type` [](<>) 目录`pg_type`存储有关数据类型的信息。基本类型和枚举类型(标量类型)是用[`创建类型`](sql-createtype.html), 和域[`创建域`](sql-createdomain.html).为数据库中的每个表自动创建一个复合类型,以表示表的行结构。也可以创建复合类型`创建类型为`. **表 52.62.`pg_type`列** | 列类型

描述 | | --------------- | | `样的` `样的`

行标识符 | | `类型名` `姓名`

数据类型名称 | | `类型命名空间` `样的`(参考[`pg_namespace`](catalog-pg-namespace.html).`样的`)

包含此类型的命名空间的 OID | | `打字员` `样的`(参考[`pg_authid`](catalog-pg-authid.html).`样的`)

类型所有者 | | `泰普伦` `整数2`

对于固定大小的类型,`泰普伦`是类型的内部表示中的字节数。但是对于变长类型,`泰普伦`是负数。-1 表示“varlena”类型(具有长度字的类型),-2 表示以 null 结尾的 C 字符串。 | | `典型值` `布尔`

`典型值`确定内部例程是通过值还是通过引用传递此类型的值。`典型值`如果最好是假的`泰普伦`不是 1、2 或 4(或在 Datum 为 8 个字节的机器上为 8)。可变长度类型总是通过引用传递。注意`典型值`即使长度允许按值传递,也可能为假。 | | `类型` `字符`

`类型`是`b`对于基本类型,`c`对于复合类型(例如,表格的行类型),`d`对于一个域,`e`对于枚举类型,`p`对于伪类型,`r`对于范围类型,或`米`对于多范围类型。也可以看看`typrelid`和`类型基类型`. | | `类型分类` `字符`

`类型分类`是数据类型的任意分类,解析器使用它来确定应该“首选”哪些隐式转换。看[表 52.63](catalog-pg-type.html#CATALOG-TYPCATEGORY-TABLE). | | `典型的首选` `布尔`

如果类型是其内的首选转换目标,则为真`类型分类` | | `典型定义` `布尔`

如果类型已定义,则为 true,如果这是尚未定义类型的占位符条目,则为 false。什么时候`典型定义`为 false,除了类型名称、命名空间和 OID 之外,没有任何东西可以依赖。 | | `打字稿` `字符`

解析数组输入时分隔此类型的两个值的字符。请注意,分隔符与数组元素数据类型相关联,而不是与数组数据类型相关联。 | | `typrelid` `样的`(参考[`pg_class`](catalog-pg-class.html).`样的`)

如果这是一个复合类型(参见`类型`),则此列指向[`pg_class`](catalog-pg-class.html)定义相应表的条目。(对于独立式复合类型,[`pg_class`](catalog-pg-class.html)entry 并不真正代表一个表,但无论如何它都需要用于类型的[`pg_attribute`](catalog-pg-attribute.html)要链接到的条目。)非复合类型为零。 | | `类型下标` `正则程序`(参考[`pg_proc`](catalog-pg-proc.html).`样的`)

下标处理函数的 OID,如果此类型不支持下标,则为零。“真正的”数组类型具有`类型下标`=`array_subscript_handler`,但其他类型可能具有其他处理函数来实现专门的下标行为。 | | `类型` `样的`(参考[`pg_type`](catalog-pg-type.html).`样的`)

如果`类型`不为零,则它标识另一行`pg_type`,定义下标产生的类型。这应该是零,如果`类型下标`为零。但是,它可以为零时`类型下标`不为零,如果处理程序不需要`类型`确定下标结果类型。请注意,一个`类型`依赖关系被认为意味着该类型中元素类型的物理包含;因此元素类型的 DDL 更改可能会受到此类型的限制。 | | `类型数组` `样的`(参考[`pg_type`](catalog-pg-type.html).`样的`)

如果`类型数组`不为零,则它标识另一行`pg_type`,这是具有此类型作为元素的“真实”数组类型 | | `类型输入` `正则程序`(参考[`pg_proc`](catalog-pg-proc.html).`样的`)

输入转换功能(文本格式) | | `典型输出` `正则程序`(参考[`pg_proc`](catalog-pg-proc.html).`样的`)

输出转换功能(文本格式) | | `预感` `正则程序`(参考[`pg_proc`](catalog-pg-proc.html).`样的`)

输入转换函数(二进制格式),如果没有则为零 | | `打字发送` `正则程序`(参考[`pg_proc`](catalog-pg-proc.html).`样的`)

输出转换函数(二进制格式),如果没有则为零 | | `打字调节素` `正则程序`(参考[`pg_proc`](catalog-pg-proc.html).`样的`)

类型修饰符输入函数,如果类型不支持修饰符,则为零 | | `类型输出` `正则程序`(参考[`pg_proc`](catalog-pg-proc.html).`样的`)

类型修饰符输出函数,或零以使用标准格式 | | `类型分析` `正则程序`(参考[`pg_proc`](catalog-pg-proc.html).`样的`)

风俗[分析](sql-analyze.html)函数,或零以使用标准函数 | | `类型对齐` `字符`

`类型对齐`是存储此类型值时所需的对齐方式。它适用于磁盘上的存储以及 PostgreSQL 中值的大多数表示。当多个值连续存储时,例如在磁盘上完整行的表示中,在这种类型的数据之前插入填充,以便它从指定的边界开始。对齐参考是序列中第一个基准的开始。可能的值为:

* `c`=`字符`对齐,即不需要对齐。

* `s`=`短的`对齐(大多数机器上为 2 个字节)。

* `一世`=`整数`对齐(大多数机器上为 4 个字节)。

* `d`=`双倍的`对齐(在许多机器上是 8 个字节,但绝不是全部)。 | | `打字存储` `字符`

`打字存储`告诉 varlena 类型(那些`泰普伦`= -1) 如果该类型已准备好进行烘烤,以及该类型属性的默认策略应该是什么。可能的值为:

* `p`(plain):值必须始终以纯格式存储(非 varlena 类型始终使用此值)。

* `e`(外部):值可以存储在辅助“TOAST”关系中(如果关系有,请参阅`pg_class.reltoastrelid`)。

* `米`(main):值可以被压缩并内联存储。

* `x`(扩展):值可以被压缩和/或移动到次要关系。

`x`是可烘烤类型的通常选择。注意`米`值也可以移出到辅助存储,但只能作为最后的手段(`e`和`x`值首先移动)。 | | `typnotnull` `布尔`

`typnotnull`表示对类型的非空约束。仅用于域。 | | `类型基类型` `样的`(参考[`pg_type`](catalog-pg-type.html).`样的`)

如果这是一个域(请参阅`类型`), 然后`类型基类型`标识此类型所基于的类型。如果此类型不是域,则为零。 | | `类型模式` `整数4`

域使用`类型模式`记录`类型模式`应用于它们的基本类型(-1,如果基本类型不使用`类型模式`)。-1 如果此类型不是域。 | | `打字机` `整数4`

`打字机`是数组上域的数组维数(即,`类型基类型`是数组类型)。数组类型上的域以外的类型为零。 | | `排版` `样的`(参考[`pg_collat​​ion`](catalog-pg-collation.html).`样的`)

`排版`指定类型的排序规则。如果该类型不支持排序规则,这将是零。支持排序规则的基本类型将在此处具有非零值,通常`DEFAULT_COLLATION_OID`.如果为域指定了一个,则可排序类型上的域可以具有与其基本类型不同的排序 OID。 | | `typdefaultbin` `pg_node_tree`

如果`typdefaultbin`不为空,它是`节点字符串()`类型的默认表达式的表示。这仅用于域。 | | `典型默认值` `文本`

`典型默认值`如果类型没有关联的默认值,则为 null。如果`typdefaultbin`不为空,`典型默认值`必须包含由表示的默认表达式的人类可读版本`typdefaultbin`.如果`typdefaultbin`为空并且`典型默认值`不是,那么`典型默认值`是类型默认值的外部表示,可以将其馈送到类型的输入转换器以生成常量。 | | `打字机` `访问[]`

访问权限;看[第 5.7 节](ddl-priv.html)详情 | ### 笔记 对于系统表中使用的固定宽度类型,在`pg_type`同意编译器在表示表格行的结构中布置列的方式。 [表 52.63](catalog-pg-type.html#CATALOG-TYPCATEGORY-TABLE)列出系统定义的值`类型分类`.此列表中的任何未来添加也将是大写的 ASCII 字母。所有其他 ASCII 字符保留用于用户定义的类别。 **表 52.63.`类型分类`代码** | 代码 | 类别 | | --- | --- | | `一种` | 数组类型 | | `乙` | 布尔类型 | | `C` | 复合类型 | | `D` | 日期/时间类型 | | `乙` | 枚举类型 | | `G` | 几何类型 | | `一世` | 网络地址类型 | | `ñ` | 数值类型 | | `磷` | 伪类型 | | `R` | 范围类型 | | `小号` | 字符串类型 | | `吨` | 时间跨度类型 | | `ü` | 用户定义类型 | | `五` | 位串类型 | | `X` | `未知`类型 |