# 52.62.pg_type

目录pg_type存储有关数据类型的信息。基本类型和枚举类型(标量类型)是用创建类型, 和域创建域.为数据库中的每个表自动创建一个复合类型,以表示表的行结构。也可以创建复合类型创建类型为.

表 52.62.pg_type

列类型

描述
样的 样的

行标识符
类型名 姓名

数据类型名称
类型命名空间 样的(参考pg_namespace.样的)

包含此类型的命名空间的 OID
打字员 样的(参考pg_authid.样的)

类型所有者
泰普伦 整数2

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

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

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

类型分类是数据类型的任意分类,解析器使用它来确定应该“首选”哪些隐式转换。看表 52.63.
典型的首选 布尔

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

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

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

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

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

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

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

输入转换功能(文本格式)
典型输出 正则程序(参考pg_proc.样的)

输出转换功能(文本格式)
预感 正则程序(参考pg_proc.样的)

输入转换函数(二进制格式),如果没有则为零
打字发送 正则程序(参考pg_proc.样的)

输出转换函数(二进制格式),如果没有则为零
打字调节素 正则程序(参考pg_proc.样的)

类型修饰符输入函数,如果类型不支持修饰符,则为零
类型输出 正则程序(参考pg_proc.样的)

类型修饰符输出函数,或零以使用标准格式
类型分析 正则程序(参考pg_proc.样的)

风俗分析函数,或零以使用标准函数
类型对齐 字符

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

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

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

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

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

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

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

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

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

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

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

typnotnull表示对类型的非空约束。仅用于域。
类型基类型 样的(参考pg_type.样的)

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

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

打字机是数组上域的数组维数(即,类型基类型是数组类型)。数组类型上的域以外的类型为零。
排版 样的(参考pg_collat​​ion.样的)

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

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

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

访问权限;看第 5.7 节详情

# 笔记

对于系统表中使用的固定宽度类型,在pg_type同意编译器在表示表格行的结构中布置列的方式。

表 52.63列出系统定义的值类型分类.此列表中的任何未来添加也将是大写的 ASCII 字母。所有其他 ASCII 字符保留用于用户定义的类别。

表 52.63.类型分类代码

代码 类别
一种 数组类型
布尔类型
C 复合类型
D 日期/时间类型
枚举类型
G 几何类型
一世 网络地址类型
ñ 数值类型
伪类型
R 范围类型
小号 字符串类型
时间跨度类型
ü 用户定义类型
位串类型
X 未知类型