pg_proc #
目录 pg_proc 存储关于函数、过程、聚集函数
和窗口函数(统称为例程)的信息。更多信息见 CREATE FUNCTION、CREATE PROCEDURE 和
Section 36.3。
如果 prokind 表明该条目针对聚集函数,
则在
pg_aggregate
中应当有一行与之匹配。
Table 52.39. \1 字段列说明
Column Type Description |
|---|
Row identifier |
函数的名称 |
包含此函数的命名空间的 OID |
函数的拥有者 |
此函数的实现语言或调用接口 |
估计的执行代价
(以 cpu_operator_cost 为单位);
如果 |
估计的结果行数(如果 |
可变参数数组参数的元素的数据类型; 如果该函数没有可变参数则为零 |
此函数的规划器支持函数(见 Section 36.11),如果没有则为零 |
|
函数是一个安全定义者(即一个 “setuid” 函数) |
该函数没有副作用。除返回值之外,不会传递关于参数的任何信息。 任何可能根据其参数值抛出错误的函数都不是防泄漏的。 |
如果任一调用参数为空,则函数返回空值。在这种情况下, 该函数实际上根本不会被调用。非“严格”的函数 必须准备好处理空输入。 |
函数返回一个集合(即指定数据类型的多个值) |
|
|
输入参数的个数 |
有默认值的参数的个数 |
返回值的数据类型 |
函数参数的数据类型的数组。它只包括输入参数
(包括 |
函数参数的数据类型的数组。它包括所有参数
(包括 |
函数参数模式的数组,编码为:
|
函数参数名称的数组。
没有名字的参数在数组中被设置为空字符串。
如果所有参数都没有名字,则此字段为空。
注意,其下标对应的是
|
默认值的表达式树( |
要应用转换(来自函数的 |
该字段告诉函数处理程序如何调用该函数。 对于解释型语言,它可能是函数的实际源代码; 也可能是链接符号、文件名或几乎任何其他内容, 取决于实现语言/调用约定。 |
有关如何调用该函数的附加信息。同样,其解释取决于具体的语言。 |
预解析的 SQL 函数体。当函数体以 SQL 标准记法给出 而不是作为字符串字面值给出时,它用于 SQL 语言的函数。 在其他情况下为空。 |
函数针对运行时配置变量的本地设置 |
访问特权;详见 Section 5.8 |
对于编译型函数(包括内建的和动态加载的),
prosrc 包含该函数的 C 语言名称(链接符号)。
对于 SQL 语言的函数,如果函数体被指定为字符串字面值,
则 prosrc 包含函数的源文本;
但如果函数体以 SQL 标准风格指定,
则 prosrc 不被使用
(通常它是一个空字符串),而
prosqlbody 包含预解析的定义。
对于当前已知的所有其他语言类型,
prosrc 包含函数的源文本。
probin 除动态加载的 C 函数外都为空;
对于后者,它给出包含该函数的共享库文件的名称。