2016-06-09 35 views
0

我试图找到MonetDB函数签名的来源。 有些可以通过查询sys.functions表找到,但日期和时间函数缺少签名。例如,如果您查看该表中的“月”功能,则列表中列出了4个。有没有办法查看MonetDB函数签名

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

谢谢

回答

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),并采取无论是日期时间戳timestamptzmonth_interval作为参数(ARG_1)。

+0

真棒谢谢你。我知道我必须失去一些东西。 –

相关问题