如何找到postgresql用于执行类型转换的函数?

如何找到postgresql用于执行类型转换的函数?,postgresql,casting,Postgresql,Casting,如何确定postgresql用于执行类型转换的函数 例如:如果我选择了“{1,2,3}”::int4[],我如何确定postgresql使用哪个函数来执行强制转换?psql中的Doing\dC似乎没有列出任何目标数据类型为int4[]的强制转换。强制转换存储在系统表中。您可以通过在线文档进行跟踪。看起来很有希望 如果您必须阅读源代码,请尝试从开始。完全精妙的方法是将debug\u print\u parse设置为on或将调试打印计划设置为打开然后查看服务器日志中的解析树或计划树,最终调用了该函数

如何确定postgresql用于执行类型转换的函数


例如:如果我选择了“{1,2,3}”::int4[],我如何确定postgresql使用哪个函数来执行强制转换?psql中的Doing\dC似乎没有列出任何目标数据类型为int4[]的强制转换。

强制转换存储在系统表中。您可以通过在线文档进行跟踪。看起来很有希望


如果您必须阅读源代码,请尝试从开始。

完全精妙的方法是将debug\u print\u parse设置为on
将调试打印计划设置为打开
然后查看服务器日志中的解析树或计划树,最终调用了该函数

在这个特定的示例中,这将告诉您所编写的不是真正的强制转换,它只是将字符串
{1,2,3}
馈送到类型
int4[]
的类型输入函数。还有一些情况下,这样的强制转换函数不会被调用,例如二进制兼容类型或通过I/O函数强制