sysprocedures 系统目录表列出了数据库中注册的每个函数和过程的特征。它对每个例程包含一行。
sysprocedures 中的每个函数具有唯一值 procid,称为例程标识符。在整个系统目录中,函数由其例程标识符而不是其名称标识。
列 | 类型 | 解释 | |
---|---|---|---|
procname | VARCHAR(128) | 例程的名称 | |
owner | VARCHAR(32) | 所有者的名称 | |
procid | SERIAL | 例程的唯一标识代码 | |
mode | CHAR(1) | 方式类型:
|
|
retsize | INTEGER | 返回值的已编译大小(以字节计) | |
symsize | INTEGER | 符号表的已编译大小(以字节计) | |
datasize | INTEGER | 常量数据的已编译大小(以字节计) | |
codesize | INTEGER | 例程代码的已编译大小(以字节计) | |
numargs | INTEGER | 例程的自变量数 | |
isproc | CHAR(1) | 指定例程是过程还是函数:
|
|
specificname | VARCHAR(128) | 指定例程的名称 | |
externalname | VARCHAR(255) | 外部例程的位置。此项在内容和格式上都是特定于语言的。 | |
paramstyle | CHAR(1) | 参数样式:I = GBase 8s | |
langid | INTEGER | 语言代码(在 sysroutinelangs 表中) | |
paramtypes | RTNPARAMTYPES | 描述例程参数的信息 | |
variant | BOOLEAN | 例程是否是 VARIANT:
|
|
client | BOOLEAN | 保留供将来使用 | |
handlesnulls | BOOLEAN | NULL 处理指示符:
|
|
percallcost | INTEGER | 每个调用的 CPU 量
执行 UDR 的整数成本:成本 / 调用 - 0 -(2^31-1) |
|
commutator | VARCHAR(128) | 换向函数的名称 | |
negator | VARCHAR(128) | 否定函数的名称 | |
selfunc | VARCHAR(128) | 用于估计 UDR 的选择性的函数的名称 | |
internal | BOOLEAN | 指定是否可以从 SQL 调用例程:
|
|
class | CHAR(18) | 执行例程应依据的 CPU 类 | |
stack | INTEGER | 每个调用所需的堆栈大小(以字节计) | |
parallelizable | BOOLEAN | UDR 的并行化指示符:
|
|
costfunc | VARCHAR(128) | UDR 的成本函数的名称 | |
selconst | SMALLFLOAT | UDR 的选择性常量 | |
flags | INTEGER | 仅供内部使用 |
在 mode 列中,R 方式是 O 方式的特殊情况。如果例程是以不同于例程创建者的指定所有者创建的,那么例程处于受限 (R) 方式。如果执行了涉及远程数据库的例程语句,那么数据库服务器使用执行例程的用户的访问特权而不是例程所有者的特权。在所有其他情况下,R 方式例程与 O 方式例程行为相同。
唯一索引定义于 procid 列。procname、isproc、numargs 和 owner 列的组合索引允许重复值,specificname 和 owner 列的组合索引也允许重复值。