pg_proc
#目录 pg_proc
存储关于函数、过程、聚合函数和窗口函数(统称为例程)的信息。更多信息请参见 CREATE FUNCTION、CREATE PROCEDURE 和 第 36.3 节。
如果 prokind
表明该条目是关于一个聚合函数的,那么在 pg_aggregate
中应该有一个匹配的行。
表 52.39. pg_proc
列
列 类型 描述 |
---|
行标识符 |
函数的名称 |
包含此函数的命名空间的 OID |
函数的拥有者 |
此函数的实现语言或调用接口 |
估计的执行成本(以 cpu_operator_cost 为单位);如果 |
估计的返回行数(如果 |
可变参数数组元素的 OID,如果函数没有可变参数则为零 |
此函数的查询计划器支持函数(参见 第 36.11 节),如果没有则为零 |
普通函数为 |
函数是安全定义者(即 “setuid” 函数) |
函数没有副作用。除了返回值外,不通过参数传递任何信息。任何可能因其参数值而抛出错误的函数都不是无害的。 |
如果任何调用参数为 NULL,函数返回 NULL。在这种情况下,函数实际上不会被调用。非 “strict” 函数必须能够处理 NULL 输入。 |
函数返回一个集合(即,多个指定数据类型的值) |
|
|
输入参数的数量 |
具有默认值的参数数量 |
返回值的 OID |
函数参数数据类型 OID 向量。它只包括输入参数(包括 |
函数参数数据类型 OID 数组。它包括所有参数(包括 |
函数参数模式的数组,编码为 |
函数参数名称的数组。没有名称的参数在数组中设置为空字符串。如果所有参数都没有名称,则此字段为 NULL。请注意,下标对应于 |
默认值的表达式树(以 |
要应用转换(来自函数的 |
这告诉函数处理器如何调用函数。它可能是解释型语言的实际源代码、链接符号、文件名,或者其他任何内容,具体取决于实现语言/调用约定。 |
关于如何调用函数的附加信息。同样,解释是语言特定的。 |
预解析的 SQL 函数体。这用于 SQL 语言函数,当函数体以 SQL 标准表示法而不是字符串字面量给出时。在其他情况下为 NULL。 |
函数运行时配置变量的本地设置 |
访问权限;有关详细信息,请参阅 第 5.8 节 |
对于编译型函数,包括内置函数和动态加载函数,prosrc
包含函数的 C 语言名称(链接符号)。对于 SQL 语言函数,如果函数体是以字符串字面量指定的,则 prosrc
包含函数的源代码;但如果函数体是以 SQL 标准样式指定的,则 prosrc
未被使用(通常是空字符串),而 prosqlbody
包含预解析的定义。对于所有其他当前已知的语言类型,prosrc
包含函数的源代码。probin
对于动态加载的 C 函数为空,它提供了包含该函数的共享库文件的名称。
如果您在文档中看到任何不正确、与您对特定功能的体验不符或需要进一步澄清的内容,请使用 此表单 报告文档问题。