↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

百科 / 协议消息 / 前端消息

FunctionCall

FunctionCall 是前端协议消息,表示函数调用。

当前查看 PostgreSQL 18.6。

说明

FunctionCall 是前端协议消息,表示函数调用。

方向
前端 → 后端
首个线上协议字段
Byte1('F')
字段条目
9
手册中的交互阶段
函数调用

用法

FunctionCall (F)

消息边界与重复字段

下方完整定义保留重复项、计数与条件字段。表格行号表示文档中的字段定义,并非固定字节偏移量。整数编码与交互流程以同版本协议章节为准。

按手册顺序排列的线上协议字段

位置格式含义
1Byte1('F')标识消息为函数调用。
2Int32消息内容的长度(以字节为单位),包括其自身。
3Int32指定要调用的函数的对象 ID。
4Int16后续参数格式代码的数量(以下用 C 表示)。可以为零,表示没有参数,或所有参数都采用默认格式(文本);也可以为一,表示将指定的格式代码用于所有参数;还可以等于实际参数数量。
5Int16[ C ]参数格式代码。每个目前必须是零(文本)或一(二进制)。
6Int16指定传递给函数的参数数量。
7Int32参数值的长度,以字节为单位(不包括此长度字段本身)。可以为零。特殊值 -1 表示 NULL 参数值。为 NULL 时,后面不再有值的字节。
8Byte n参数的值,以相关格式代码指示的格式表示。 n 是上述长度。
9Int16函数结果的格式代码。目前必须为零(文本)或一(二进制)。

手册定义

Byte1('F')

标识消息为函数调用。

Int32

消息内容的长度(以字节为单位),包括其自身。

Int32

指定要调用的函数的对象 ID。

Int16

后续参数格式代码的数量(以下用 C 表示)。可以为零,表示没有参数,或所有参数都采用默认格式(文本);也可以为一,表示将指定的格式代码用于所有参数;还可以等于实际参数数量。

Int16[C]

参数格式代码。每个目前必须是零(文本)或一(二进制)。

Int16

指定传递给函数的参数数量。

接下来,每个参数都有以下两个字段:

Int32

参数值的长度,以字节为单位(不包括此长度字段本身)。可以为零。特殊值 -1 表示 NULL 参数值。为 NULL 时,后面不再有值的字节。

Byte n

参数的值,以相关格式代码指示的格式表示。n是上述长度。

最后一个参数之后还有以下字段:

Int16

函数结果的格式代码。目前必须为零(文本)或一(二进制)。

相关条目

文档与源码

来源构建
版本
18.6
构建
https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
来源指纹
555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f

版本比较

PostgreSQL 17 → 18: 无变化。

比较已记录的接口与属性,排除来源指纹和构建元数据。某个样本中没有记录,不能据此判断实际引入或移除的版本。

相关条目

导出 JSON · 返回协议消息 · 收录范围为 PostgreSQL 10 至 20;最早采样版本不一定是实际引入版本。