# 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_class entry 并不真正代表一个表,但无论如何它都需要用于类型的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 是可烘烤类型的通常选择。注意米 值也可以移出到辅助存储,但只能作为最后的手段(e 和x 值首先移动)。 |
typnotnull 布尔 typnotnull 表示对类型的非空约束。仅用于域。 |
类型基类型 样的 (参考pg_type .样的 )如果这是一个域(请参阅 类型 ), 然后类型基类型 标识此类型所基于的类型。如果此类型不是域,则为零。 |
类型模式 整数4 域使用 类型模式 记录类型模式 应用于它们的基本类型(-1,如果基本类型不使用类型模式 )。-1 如果此类型不是域。 |
打字机 整数4 打字机 是数组上域的数组维数(即,类型基类型 是数组类型)。数组类型上的域以外的类型为零。 |
排版 样的 (参考pg_collation .样的 )排版 指定类型的排序规则。如果该类型不支持排序规则,这将是零。支持排序规则的基本类型将在此处具有非零值,通常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 | 未知 类型 |