RowDescription
RowDescription 是后端协议消息,表示行描述。
当前查看 PostgreSQL 18.6。
说明
RowDescription 是后端协议消息,表示行描述。
- 方向
- 后端 → 前端
- 首个线上协议字段
- Byte1('T')
- 字段条目
- 10
- 手册中的交互阶段
- 简单查询;扩展查询
用法
RowDescription (B)消息边界与重复字段
下方完整定义保留重复项、计数与条件字段。表格行号表示文档中的字段定义,并非固定字节偏移量。整数编码与交互流程以同版本协议章节为准。
按手册顺序排列的线上协议字段
| 位置 | 格式 | 含义 |
|---|---|---|
| 1 | Byte1('T') | 标识消息为行描述。 |
| 2 | Int32 | 消息内容的长度(以字节为单位),包括其自身。 |
| 3 | Int16 | 指定一行中的字段数量(可以为零)。 |
| 4 | 字符串 | 字段名称。 |
| 5 | Int32 | 如果能够确定该字段是某个特定表的列,则为该表的对象 ID;否则为零。 |
| 6 | Int16 | 如果能够确定该字段是某个特定表的列,则为该列的属性编号;否则为零。 |
| 7 | Int32 | 字段数据类型的对象 ID。 |
| 8 | Int16 | 数据类型大小(参见 pg_type.typlen )。注意,负值表示可变宽度类型。 |
| 9 | Int32 | 类型修饰符(参见 pg_attribute.atttypmod )。修饰符的含义是特定于类型的。 |
| 10 | Int16 | 字段所使用的格式代码。目前为零(文本)或一(二进制)。对于 Describe 针对预备语句的变体所返回的 RowDescription,格式代码尚未确定,始终为零。 |
手册定义
-
- Byte1('T')
-
标识消息为行描述。
- Int32
-
消息内容的长度(以字节为单位),包括其自身。
- Int16
-
指定一行中的字段数量(可以为零)。
接下来,每个字段都有以下内容:
- 字符串
-
字段名称。
- Int32
-
如果能够确定该字段是某个特定表的列,则为该表的对象 ID;否则为零。
- Int16
-
如果能够确定该字段是某个特定表的列,则为该列的属性编号;否则为零。
- Int32
-
字段数据类型的对象 ID。
- Int16
-
数据类型大小(参见
pg_type.typlen)。注意,负值表示可变宽度类型。 - Int32
-
类型修饰符(参见
pg_attribute.atttypmod)。修饰符的含义是特定于类型的。 - Int16
-
字段所使用的格式代码。目前为零(文本)或一(二进制)。对于 Describe 针对预备语句的变体所返回的 RowDescription,格式代码尚未确定,始终为零。
相关条目
文档与源码
来源构建
- 版本
- 18.6
- 构建
- https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
- 来源指纹
555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f
版本比较
PostgreSQL 17 → 18: 无变化。
比较已记录的接口与属性,排除来源指纹和构建元数据。某个样本中没有记录,不能据此判断实际引入或移除的版本。
相关条目
导出 JSON · 返回协议消息 · 收录范围为 PostgreSQL 10 至 20;最早采样版本不一定是实际引入版本。