получить метаданные о функции с аргументом table.column% type в postgres - PullRequest
1 голос
/ 29 мая 2009

Можно ли узнать, был ли аргумент в функции в postgres определен как

table.column%type foo

или

sometype foo

запрос, например pg_proc

1 Ответ

2 голосов
/ 29 мая 2009

Столбец proargtypes в pg_proc представляет собой массив типов всех аргументов функции. Каждый тип может затем иметь перекрестные ссылки на pg_type.oid.

Итак, если я определю функцию следующим образом:

steve@steve@[local] =# create function testfunc(pg_proc.proname%type) returns boolean language 'sql' immutable strict as $$ select true $$;
NOTICE:  type reference pg_proc.proname%TYPE converted to name
CREATE FUNCTION

Ну, это уведомление не слишком обнадеживающее.

Запись pg_proc для этой функции:

 proname  | proargtypes
----------+-------------
 testfunc | 19

и тип 19 просто "имя". так что, похоже, ответ здесь «нет», я боюсь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...