CancelRequest
CancelRequest 是前端协议消息。消息内容长度以字节为单位,包含长度字段本身。
当前查看 PostgreSQL 18.6。
说明
CancelRequest 是前端协议消息。消息内容长度以字节为单位,包含长度字段本身。
- 方向
- 前端 → 后端
- 首个线上协议字段
- Int32
- 字段条目
- 4
- 手册中的交互阶段
- 取消正在执行的请求;SSL 会话加密;GSSAPI 会话加密
用法
CancelRequest (F)消息边界与重复字段
下方完整定义保留重复项、计数与条件字段。表格行号表示文档中的字段定义,并非固定字节偏移量。整数编码与交互流程以同版本协议章节为准。
按手册顺序排列的线上协议字段
| 位置 | 格式 | 含义 |
|---|---|---|
| 1 | Int32 | 消息内容的长度(以字节为单位),包括其自身。 |
| 2 | Int32(80877102) | 取消请求代码。其最高 16 位为 1234,最低 16 位为 5678。为避免混淆,此代码不得与任何协议版本号相同。 |
| 3 | Int32 | 目标后端的进程 ID。 |
| 4 | Byte n | 目标后端的密钥。此字段延伸至消息末尾,其范围由长度字段确定。密钥最长为 256 字节。 |
手册定义
-
- Int32
-
消息内容的长度(以字节为单位),包括其自身。
- Int32(80877102)
-
取消请求代码。其最高 16 位为 1234,最低 16 位为 5678。为避免混淆,此代码不得与任何协议版本号相同。
- Int32
-
目标后端的进程 ID。
- Byte n
-
目标后端的密钥。此字段延伸至消息末尾,其范围由长度字段确定。密钥最长为 256 字节。
在协议版本 3.2 之前,密钥始终为 4 字节长。
相关条目
文档与源码
来源构建
- 版本
- 18.6
- 构建
- https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
- 来源指纹
555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f
版本比较
PostgreSQL 17 → 18: 属性变化。
以下差异保留原始字段名与英文源描述。
--- PostgreSQL 17
+++ PostgreSQL 18
@@ -3,7 +3,7 @@
"fields": [
{
"description": "Length of message contents in bytes, including self.",
- "format": "Int32(16)"
+ "format": "Int32"
},
{
"description": "The cancel request code. The value is chosen to contain 1234 in the most significant 16 bits, and 5678 in the least significant 16 bits. (To avoid confusion, this code must not be the same as any protocol version number.)",
@@ -14,8 +14,8 @@
"format": "Int32"
},
{
- "description": "The secret key for the target backend.",
- "format": "Int32"
+ "description": "The secret key for the target backend. This field extends to the end of the message, indicated by the length field. The maximum key length is 256 bytes.",
+ "format": "Byte n"
}
]
}
比较已记录的接口与属性,排除来源指纹和构建元数据。某个样本中没有记录,不能据此判断实际引入或移除的版本。
相关条目
导出 JSON · 返回协议消息 · 收录范围为 PostgreSQL 10 至 20;最早采样版本不一定是实际引入版本。