pg_proc
目录pg_proc存放有关函数、过程、聚集函数以及窗口函数(共称为例程)的信息。更多信息请参考CREATE FUNCTION、CREATE PROCEDURE和第 38.3 节。
如果prokind显示该条目用于一个聚集函数,在pg_aggregate中应该有一个相匹配的行。
表 52.38. pg_proc Columns
列类型 描述  | 
|---|
 行标识符  | 
 函数的名字  | 
 函数所属的名字空间的OID  | 
 函数的拥有者  | 
 实现语言或该函数的调用接口  | 
 
估计的执行代价(以cpu_operator_cost为单位),如果  | 
 
估计的结果行数量(如果  | 
 可变数组参数的元素的数据类型,如果函数没有可变参数则为0  | 
 对于该函数的计划器支持函数(参见第 38.11 节),如果没有则为零  | 
 
  | 
 函数是一个安全性定义者(即,一个“setuid”函数)  | 
 该函数没有副作用。除了通过返回值,没有关于参数的信息被传播。任何会抛出基于其参数值的错误信息的函数都不是泄露验证的。  | 
 当任意调用函数为空时,函数是否会返回空值。在那种情况下函数实际上根本不会被调用。非“strict”函数必须准备好处理空值输入。  | 
 函数是否返回一个集合(即,指定数据类型的多个值)  | 
 
  | 
 
  | 
 输入参数的个数  | 
 具有默认值的参数个数  | 
 返回值的数据类型  | 
 
一个函数参数的数据类型的数组。
这只包括输入参数(含  | 
 
一个函数参数的数据类型的数组。
这包括所有参数(含  | 
 
一个函数参数的模式的数组。这里包括:
  | 
 
一个函数参数的名字的数组。没有名字的参数在数组中设置为空字符串。如果没有一个参数有名字,这个域为空。
注意这里的下标对应着  | 
 
默认值的表达式树(按照  | 
 
要应用转换的(来自函数的  | 
 这个域告诉函数处理者如何调用该函数。它可能是针对解释型语言的真实源码、一个符号链接、一个文件名或任何其他东西,这取决于实现语言/调用规范。  | 
 关于如何调用函数的附加信息。其解释是与语言相关的。  | 
 预解析的SQL函数体。 当该体在SQL-标准表示法中给出而不是作为一个字符串文本时的时候,这个用于SQL-语言函数。 其他情况下为空。  | 
 函数对于运行时配置变量的本地设置值  | 
 访问权限,详见第 5.7 节  | 
对于编译好的函数,包括内建的和动态载入的,prosrc包含了函数的C语言名字(链接符号)。
对于SQL-语言函数,prosrc包含着函数的源文本,如果它被指定为字符串;但是如果函数体被指定为函数标准样式,prosrc是不使用的(通常是空字符串)并且由prosqlbody包含预解析的定义。
所有其他已知的语言类型,prosrc包含函数的源码文本。
除了对于动态载入的C函数之外,probin为空,对于动态载入的C函数,它给定了包含该函数的共享库文件的名称。