defs
语法
defs([X])
详情
查询系统中所有函数信息。
参数
X 可选参数,是一个是字符串,用于匹配函数名,支持通配符"%"和"?"。"%"表示0,1或多个字符,“?”表示1个字符。
返回值
返回一个表:
-
如果没有指定 X,返回系统的所有函数信息。
-
如果指定了 X,返回匹配 X 的所有函数信息。
返回的表包括以下列:
| 列名 | 含义 |
|---|---|
| name | 函数名 |
| isCommand | 是否为命令 |
| userDefined | 是否为用户自定义函数 |
| isView | 是否为函数视图 |
| minParamCount | 最小参数个数 |
| maxParamCount | 最大参数个数 |
| syntax | 函数语法 |
例子
defs();
| name | isCommand | userDefined | isView | minParamCount | maxParamCount | syntax |
|---|---|---|---|---|---|---|
| !=_2 | 0 | 0 | 0 | 2 | 2 | (X, Y) |
| !_1 | 0 | 0 | 0 | 1 | 1 | (X) |
| $_2 | 0 | 0 | 0 | 2 | 2 | (obj, type) |
| %_2 | 0 | 0 | 0 | 2 | 2 | (X, Y) |
| &&_2 | 0 | 0 | 0 | 2 | 2 | (X, Y) |
| &_2 | 0 | 0 | 0 | 2 | 2 | (X, Y) |
| **_2 | 0 | 0 | 0 | 2 | 2 | (X, Y) |
| *_2 | 0 | 0 | 0 | 2 | 2 | (X, Y) |
| +_2 | 0 | 0 | 0 | 2 | 2 | (X, Y) |
| -_1 | 0 | 0 | 0 | 1 | 1 | (X) |
| ... |
typestr defs();
// output: IN-MEMORY TABLE;
select * from defs() where name like "bit%";
|
name |
isCommand |
userDefined |
isView |
minParamCount |
maxParamCount |
syntax |
|---|---|---|---|---|---|---|
| bitAnd | 0 | 0 | 0 | 2 | 2 | (X, Y) |
| bitNot | 0 | 0 | 0 | 1 | 1 | (X) |
| bitOr | 0 | 0 | 0 | 2 | 2 | (X, Y) |
| bitXor | 0 | 0 | 0 | 2 | 2 | (X, Y) |
defs("bit%");
|
name |
isCommand |
userDefined |
isView |
minParamCount |
maxParamCount |
syntax |
|---|---|---|---|---|---|---|
| bitAnd | 0 | 0 | 0 | 2 | 2 | (X, Y) |
| bitNot | 0 | 0 | 0 | 1 | 1 | (X) |
| bitOr | 0 | 0 | 0 | 2 | 2 | (X, Y) |
| bitXor | 0 | 0 | 0 | 2 | 2 | (X, Y) |
defs("%sin");
|
name |
isCommand |
userDefined |
isView |
minParamCount |
maxParamCount |
syntax |
|---|---|---|---|---|---|---|
| asin | 0 | 0 | 0 | 1 | 1 | (X) |
| sin | 0 | 0 | 0 | 1 | 1 | (X) |
defs("?sin");
|
name |
isCommand |
userDefined |
isView |
minParamCount |
maxParamCount |
syntax |
|---|---|---|---|---|---|---|
| asin | 0 | 0 | 0 | 1 | 1 | (X) |
// 定义 func1
def func1(){
return 1
}
// 将函数 func1 定义为函数视图
// addFunctionView 只能由管理员或拥有 VIEW_OWNER 权限的普通用户执行
addFunctionView(func1)
select * from defs() where name = "func1"
| name | isCommand | userDefined | isView | minParamCount | maxParamCount | syntax |
|---|---|---|---|---|---|---|
| func1 | 0 | 0 | 1 | 0 | 0 | () |
| func1 | 0 | 0 | 1 | 0 | 0 | () |
注:
通过
addFunctionView
将自定义函数注册为函数视图后,defs() 会返回两条相同的函数视图记录。