有没有办法查看MonetDB函数签名

问题描述 投票:0回答:1

我试图找到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没有这个,我只能假设我在错误的地方。我在网站上阅读了他们的文档并在他们的网站上搜索了这个信息,但我找不到它。

谢谢

function monetdb
1个回答
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 |
+------+-------+-------+----------------+

我们可以看到有四个函数叫做month。它们都返回一个整数(res_0),并将日期,时间戳,timestamptz或month_interval作为参数(arg_1)。

© www.soinside.com 2019 - 2024. All rights reserved.