当postgreSQL文档说明它的数据包here时,函数调用必须向服务器发送带有'F'
标识符的数据包。
所以我定义了一个简单的函数并使用select
语句调用它,并在使用wireshark监视我的连接端口之后,我看到没有'F'
标识的数据包,只有多个简单的查询数据包({{ 1}}已确定)。
我在这里错过了什么吗?
答案 0 :(得分:4)
这是一种误解。
在SELECT
语句中调用的函数是查询(标识符Q
)或 Parse 中语句文本的一部分(标识符P
)消息。
您所引用的文档部分描述了fast-path interface的消息。这是前端后端协议支持预准备语句之前的剩余时间,用于执行简单的函数调用,而不必解析SQL语句。现在它已经过时了,但仍然在large object API等几个地方使用。
如果您想使用Wireshark查看F
数据包,则必须编写C代码并使用PQfn
函数。