2016-06-09 63 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

真棒謝謝你。我知道我必須失去一些東西。 –

相關問題