我试图找到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());
一样使用
我是对的 - 但我找不到“月”函数所采用的参数列表或者它们究竟返回的内容。
这个问题不只是关于“月”我想要一个源来查找sys.function表中所有函数的函数利用率。
其他RDBMS供应商已经对这些类型的函数进行了充实的解释 - 我发现MonetDB没有这个,我只能假设我在错误的地方。我在网站上阅读了他们的文档并在他们的网站上搜索了这个信息,但我找不到它。
谢谢
您可以在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 |
+------+-------+-------+----------------+
我们可以看到有四个函数叫做month。它们都返回一个整数(res_0),并将日期,时间戳,timestamptz或month_interval作为参数(arg_1)。