我试图找到MonetDB函数签名的源代码。 通过查询sys.functions表可以找到一些,但是日期和时间函数缺少签名。 例如,如果你看一下"月"该表中的函数有4个列在表中。
| id | name | func | mod | lang | type | side_e | varres | vararg |>
: : : : : uage : : ffect : : :>
+======+============+=======+=======+======+======+========+========+======== +
| 901 | month | month | mtime | 0 | 1 | false | false | false |
| 910 | month | month | mtime | 0 | 1 | false | false | false |
| 916 | month | month | mtime | 0 | 1 | false | false | false |
| 922 | month | month | mtime | 0 | 1 | false | false | false |
| 930 | dayofmonth | day | mtime | 0 | 1 | false | false | false |
+------+------------+-------+-------+------+------+--------+--------+--------
我猜了那个"月"可以像:
SELECT "month"(now());
我是对的 - 但我找不到参数列表" month"功能需要或者它们究竟返回了什么。
这个问题不只是关于"月"我想要一个源来查找sys.function表中所有函数的函数利用率。
其他RDBMS供应商已经对这些类型的函数进行了充实的解释 - 我发现MonetDB没有这样的东西,我只能假设我在错误的地方。我在网站上阅读了他们的文档并在他们的网站上搜索了这些信息,但我找不到它。
谢谢
答案 0 :(得分:1)
您可以在 sys.args 表中找到函数的参数/返回类型。您可以将此表与 sys.functions 表一起使用,以获取特定函数的参数/返回类型。
例如,要获取月函数的有效参数及其返回类型,可以使用以下查询。
SELECT functions.id, functions.name,args.name,args.type
FROM functions
INNER JOIN args
ON args.func_id=functions.id
WHERE functions.name='month';
+------+-------+-------+----------------+
| id | name | name | type |
+======+=======+=======+================+
| 1157 | month | res_0 | int |
| 1157 | month | arg_1 | date |
| 1166 | month | res_0 | int |
| 1166 | month | arg_1 | timestamp |
| 1172 | month | res_0 | int |
| 1172 | month | arg_1 | timestamptz |
| 1178 | month | res_0 | int |
| 1178 | month | arg_1 | month_interval |
+------+-------+-------+----------------+
我们可以看到有四个函数叫月。它们都返回一个整数( res_0 ),并采用日期,时间戳, timestamptz 或 month_interval 作为参数( arg_1 )。