pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
本节描述每种消息的详细格式。每种消息可以由前端(F)、postmaster/后端(B)或两者(F & B)发送。
标识此消息为 ASCII 数据行。(先前的 RowDescription 消息定义了行中字段的数量及其数据类型。)
n一个位图,行中每个字段一位。第 1 个字段对应第 1 个字节的第 7 位(MSB),第 2 个字段对应第 1 个字节的第 6 位,第 8 个字段对应第 1 个字节的第 0 位(LSB),第 9 个字段对应第 2 个字节的第 7 位,依此类推。如果对应字段的值不是 NULL,则每个位被置位。如果字段数不是 8 的倍数,位图中最后一个字节的剩余部分就被浪费了。
然后,对每个非 NULL 值的字段,有下列内容:
Specifies the size of the value of the field, including this size.
n以 ASCII 字符指定字段本身的值。n 是上面的尺寸减 4。字段数据中没有尾随的 '\0';如果前端需要,必须自己添加一个。
标识此消息为认证请求。
指定认证成功。
标识此消息为认证请求。
指定需要 Kerberos V4 认证。
标识此消息为认证请求。
指定需要 Kerberos V5 认证。
标识此消息为认证请求。
指定需要未加密的密码。
标识此消息为认证请求。
指定需要加密的密码。
加密密码时使用的盐。
标识此消息为取消密钥数据。如果前端希望以后能够发出 CancelRequest 消息,就必须保存这些值。
此后端的进程 ID。
此后端的密钥。
标识此消息为二进制数据行。(先前的 RowDescription 消息定义了行中字段的数量及其数据类型。)
n一个位图,行中每个字段一位。第 1 个字段对应第 1 个字节的第 7 位(MSB),第 2 个字段对应第 1 个字节的第 6 位,第 8 个字段对应第 1 个字节的第 0 位(LSB),第 9 个字段对应第 2 个字节的第 7 位,依此类推。如果对应字段的值不是 NULL,则每个位被置位。如果字段数不是 8 的倍数,位图中最后一个字节的剩余部分就被浪费了。
然后,对于每个具有非 NULL 值的字段,有以下内容:
Specifies the size of the value of the field, excluding this size.
n以二进制格式指定字段本身的值。 n is the above size.
包的尺寸(字节)。
取消请求码。该值经过选择,使其高 16 位包含 1234,低 16 位包含 5678。 (To avoid confusion, this code must not be the same as any protocol version number.)
目标后端的进程 ID。
目标后端的密钥。
标识此消息为完成响应。
命令标签。这通常是(但不总是)标识完成了哪条 SQL 命令的单个词。
这是一个行流,其中每行以 Byte1('\n') 结束。然后跟随序列 Byte1('\\')、Byte1('.')、Byte1('\n')。
标识此消息为 Start Copy In 响应。前端现在必须发送 CopyDataRows 消息。
标识此消息为 Start Copy Out 响应。此消息后面将跟随 CopyDataRows 消息。
标识此消息为游标响应。
游标的名称。如果游标是隐式的,则为“blank”。
标识此消息为对空查询串的响应。
未使用。
包的尺寸(字节)。
加密(使用 crypt())的密码。
标识此消息为错误。
错误消息本身。
标识此消息为函数调用。
未使用。
指定要调用的函数的对象 ID。
指定提供给函数的参数数量。
然后,对每个参数,有下列内容:
Specifies the size of the value of the argument, excluding this size.
n以二进制格式指定字段本身的值。 n is the above size.
标识此消息为函数调用结果。
指定返回了非空结果。
指定结果的值的尺寸,不包括此尺寸本身。
n以二进制格式指定结果本身的值。n 是上面的尺寸。
未使用。(严格说来,FunctionResultResponse 和 FunctionVoidResponse 是同一个东西,只是消息的某些 部分是可选的。)
标识此消息为函数调用结果。
指定返回了空结果。
标识此消息为通知。
通知消息本身。
标识此消息为通知响应。
发出通知的后端进程的进程 ID。
引发此通知的条件名称。
标识此消息为查询。
查询串本身。
标识消息类型。每当后端准备好进入新的查询周期时发送 ReadyForQuery。
标识此消息为行描述。
指定一行中的字段数(可以为零)。
Then, for each field, there is the following:
指定字段名。
指定字段类型的对象 ID。
指定类型尺寸。
指定类型修饰符。
包的尺寸(字节)。
协议版本号。高 16 位是主版本号。低 16 位是次版本号。
数据库名,如果为空则默认为用户名。
用户名。
要由 postmaster 传递给后端的任何附加命令行参数。
未使用。
后端应用于调试消息的可选 tty。
标识此消息为终止。
包的尺寸(字节)。
未加密的密码。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。