如何找出postgresql用来执行类型转换的函数?

时间:2011-08-25 03:59:19

标签: postgresql casting

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

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

2 个答案:

答案 0 :(得分:3)

完全精英的方法是执行SET debug_print_parse TO on;SET debug_print_plan TO on;,然后查看服务器日志中最终被调用的解析或计划树。

在这个特定的例子中,这将告诉您所写的内容实际上不是强制转换,它只是将字符串'{1,2,3}'提供给类型int4[]的类型输入函数。在其他情况下,不会调用类似的强制转换函数,例如二进制兼容类型或通过I / O函数进行强制。

答案 1 :(得分:1)

演员表存储在系统表pg_casts中。您可以通过在线文档跟踪它。 pg_proc看起来很有希望。

如果您不得不求助于阅读源代码,请尝试从pg_cast.h开始。