postgreSQL函数调用包
postgreSQL function call packet
正如 postgreSQL 文档所说的那样,它的数据包 here 函数调用必须向服务器发送带有 'F'
标识符的数据包。
所以我定义了一个简单的函数并用 select
语句调用它,在使用 wireshark 监视我的连接端口后,我没有看到 'F'
识别的数据包,只有多个简单的查询数据包( 'Q'
确定)。
我是不是漏掉了什么?
这是误会。
在 SELECT
语句中调用的函数是 Query(标识符 Q
)或 [=24] 语句文本的一部分=]解析(标识符P
)消息。
您所指的文档部分描述了 fast-path interface. This is a leftover from the time before the frontend-backend protocol had support for prepared statements and was used to execute a simple function call without the overhead of having to parse an SQL statement. It is mostly obsolete now, but still used in a few places like the large object API 的消息。
如果你想用 Wireshark 查看 F
数据包,你必须编写 C 代码并使用 PQfn
函数。
正如 postgreSQL 文档所说的那样,它的数据包 here 函数调用必须向服务器发送带有 'F'
标识符的数据包。
所以我定义了一个简单的函数并用 select
语句调用它,在使用 wireshark 监视我的连接端口后,我没有看到 'F'
识别的数据包,只有多个简单的查询数据包( 'Q'
确定)。
我是不是漏掉了什么?
这是误会。
在 SELECT
语句中调用的函数是 Query(标识符 Q
)或 [=24] 语句文本的一部分=]解析(标识符P
)消息。
您所指的文档部分描述了 fast-path interface. This is a leftover from the time before the frontend-backend protocol had support for prepared statements and was used to execute a simple function call without the overhead of having to parse an SQL statement. It is mostly obsolete now, but still used in a few places like the large object API 的消息。
如果你想用 Wireshark 查看 F
数据包,你必须编写 C 代码并使用 PQfn
函数。