pg_proc
#编录 pg_proc
存储有关函数、存储过程、聚合函数和窗口函数(统称为例程)的信息。有关更多信息,请参见 CREATE FUNCTION、CREATE PROCEDURE和 第 36.3 节。
如果 prokind
指示该条目用于聚合函数,则应在 pg_aggregate
中找到匹配行。
表 51.39. pg_proc
列
列类型 说明 |
---|
行标识符 |
函数名称 |
包含此函数的命名空间的 OID |
此函数的所有者 |
此函数的实现语言或调用接口 |
估计执行成本(以 cpu_operator_cost 为单位);如果为 |
估计的结果行数(如果不是 |
变参数组参数元素的数据类型,如果没有变参,则为零 |
此函数的规划器支持函数(请参见 第 36.11 节),如果没有,则为零 |
|
函数是安全定义者(即 “setuid” 函数) |
函数没有副作用。除了通过返回值,不传递有关参数的任何信息。可能会根据其参数的值引发错误的任何函数都不是泄漏的。 |
如果任何调用参数为 null,则函数返回 null。在这种情况下,实际上根本不会调用该函数。不 “严格” 的函数必须准备好处理 null 输入。 |
函数返回集合(即,指定数据类型的多个值) |
|
|
输入参数的数量 |
具有默认值的参数数量 |
返回值的数据类型 |
函数参数的数据类型的阵列。这仅包括输入参数(包括 |
函数参数的数据类型的阵列。这包括所有参数(包括 |
函数参数的模式的阵列,编码为 |
函数参数的名称阵列。没有名称的参数将在该阵列中设置为一个空字符串。如果没有参数有名称,此字段将为 null。请注意,下标对应于 |
用于默认值的表达式树( |
对哪些参数/结果数据类型应用转换(从函数的 |
这将告知功能处理程序如何调用功能。这可能是对于解释语言来说功能的实际源代码、链接符号、文件名或其他东西,这取决于实现语言/调用约定。 |
有关如何调用功能的其他信息。同样,解释是针对特定语言的。 |
预先解析的 SQL 功能主体。在以 SQL 标准符号而不是字符串常量给出主体时,这被用于 SQL 语言功能中。在其他情况下这为 null。 |
功能的本地设置用于运行时配置变量 |
访问权限;参见 第 5.8 节 以了解详情 |
对于已编译功能,内置功能和动态加载功能,prosrc
包含功能的 C 语言名称(链接符号)。对于 SQL 语言功能,如果以字符串常量形式指定功能主体,则 prosrc
包含功能的源代码;但是,如果以 SQL 标准样式指定功能主体,则 prosrc
未使用(通常是空字符串),prosqlbody
包含预解析的定义。对于所有其他当前已知语言类型,prosrc
包含功能的源代码。除动态加载的 C 功能外,probin
为 null,因为动态加载的 C 功能提供了包含该功能的共享库文件的名称。