2016-06-09 6 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.

Другие производители РСУБД имеют пояснения для этих типов функций - я не нахожу ничего подобного для 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), а также принимать либо даты, метку времени, timestamptz или month_interval в качестве параметра (arg_1).

+0

Удивительное спасибо. Я знал, что должен что-то упустить. –

Смежные вопросы