pg_node_tree
表示内部节点树的字符串
当前查看 PostgreSQL 18.6。
PG10–20 核心源码清单。类型转换与操作符类列出源码显式声明的关系;缺少记录不能排除通过其他机制进行转换或使用索引。
定义
表示内部节点树的字符串
pg_node_tree
- 目录名称
- pg_catalog.pg_node_tree
- 类型 OID
- 194
- 类型种类
- 基础类型
- 声明长度
- 变长(varlena)
- 存储策略
- 扩展
- 输入函数
- pg_node_tree_in
- 输出函数
- pg_node_tree_out
- 手册中的声明
- typdefaultbin pg_node_tree 如果 typdefaultbin 非 NULL,那么它就是该类型默认表达式的 nodeToString() 表示形式。此列只用于域。
中文手册
阅读来源定义
52.64. pg_type
目录pg_type存储有关数据类型的信息。基础类型和枚举类型(标量类型)使用CREATE TYPE创建,而域使用CREATE DOMAIN创建。数据库中的每一个表都会有一个自动创建的复合类型,用于表示表的行结构。也可以使用CREATE TYPE AS创建复合类型。
表 52.64. pg_type 列
|
列类型 描述 |
|
|---|---|
|
行标识符 |
|
|
数据类型的名字 |
|
|
包含此类型的名字空间的OID |
|
|
类型的拥有者 |
|
|
对于定长类型,typlen 是该类型内部表示所占的字节数。对于变长类型,typlen 为负数。-1 表示“varlena”类型(包含长度字的类型),-2 表示以空字符结尾的 C 字符串。 |
|
|
typbyval 决定内部例程是按值还是按引用传递此类型的值。如果 typlen 不是 1、2 或 4(在 Datum 为 8 字节的机器上还包括 8),typbyval 应当为 false。变长类型始终按引用传递。注意,即使长度允许按值传递,typbyval 也可以为 false。 |
|
|
|
|
|
|
|
|
如果此类型在它的 |
|
|
如果此类型已被定义则为真,如果此类型只是一个表示还未定义类型的占位符则为假。当 |
|
|
在分析数组输入时,分隔两个此类型值的字符。注意该分隔符是与数组元素数据类型相关联的,而不是和数组的数据类型关联。 |
|
|
如果这是一个复合类型(见 |
|
|
下标处理函数的 OID,如果该类型不支持下标则为零。“真正的”数组类型的 |
|
|
如果 |
|
|
如果 |
|
|
输入转换函数(文本格式) |
|
|
输出转换函数(文本格式) |
|
|
输入转换函数(二进制格式),如果没有则为零 |
|
|
输出转换函数(二进制格式),如果没有则为零 |
|
|
类型修饰符输入函数,如果类型不支持修饰符则为零 |
|
|
类型修饰符输出函数,或为零以使用标准格式 |
|
|
自定义ANALYZE函数,零表示使用标准函数 |
|
|
|
|
|
对于 varlena 类型(typlen = -1 的类型),typstorage 指明该类型是否支持 TOAST,以及此类型属性的默认存储策略。可能的值为:
|
|
|
|
|
|
如果这是一个域(参见 typtype),typbasetype 就标识其基础类型。如果该类型不是域,则为零。 |
|
|
域使用 |
|
|
对于基于数组的域, |
|
|
|
|
|
如果 |
|
|
如果某类型没有相关默认值,那么 |
|
|
访问权限,另请参阅第 5.8 节 |
注意
对于系统表中使用的固定宽度类型,关键的是在pg_type中定义的大小和对齐与编译器在表示表行的结构体中布局列的方式一致。
表 52.65列出了typcategory的系统定义值。任何未来对此列表的增加都将是大写ASCII字母。所有其他ASCII字符都保留给用户定义的类别。
表 52.65. typcategory 代码
| 代码 | 类别 |
|---|---|
A |
数组类型 |
B |
布尔类型 |
C |
复合类型 |
D |
日期/时间类型 |
E |
枚举类型 |
G |
几何类型 |
I |
网络地址类型 |
N |
数值类型 |
P |
伪类型 |
R |
范围类型 |
S |
字符串类型 |
T |
时间间隔类型 |
U |
用户定义类型 |
V |
位字符串类型 |
X |
unknown 类型 |
Z |
内部使用类型 |
系统目录属性
此构建的源码初始化值。字段含义参见 pg_type 。包含头文件默认值;依赖构建的常量保留符号形式,不作为服务器运行时实测。
oid194descrstring representing an internal node treetypacl_null_typlen-1typelem0typnamepg_node_treetypsendpg_node_tree_sendtyptypebtypalignityparray0typbyvalftypdelim','typinputpg_node_tree_intypmodin-typndims0typownerPOSTGREStyprelid0typmodout-typoutputpg_node_tree_outtyptypmod-1typanalyze-typdefault_null_typnotnullftypreceivepg_node_tree_recvtypstoragextypbasetype0typcategoryZtypcollationdefaulttypisdefinedttypnamespacepg_catalogtypsubscript-typdefaultbin_null_array_type_oid0typispreferredfarray_type_name
类型转换 1
与此类型相关的显式 pg_cast 记录。PostgreSQL 还支持 pg_cast 之外的类型转换,缺少记录不能证明转换不可能。
| 源类型 | 目标类型 | 转换上下文 | 转换方式 | 函数 |
|---|---|---|---|---|
pg_node_tree | text | 隐式 | 二进制兼容 | 0 |
版本比较
PostgreSQL 17.11 → 18.6。属性比较不包含构建标识和说明正文;原始目录字段与源描述保留原文。
这两个样本的系统目录和结构化属性没有变化。
这些构建的文档也有差异,请查看对应版本的手册定义。
文档与源码
- 构建
- 18.6 · https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
- 指纹
555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f
相关条目
全部数据类型 · 下载此版本 JSON · 最早收录的样本不代表该类型的实际引入版本。