Можно ли узнать, если аргумент в функции в Postgres был определен какполучить метаданные о функции с table.column% типа-аргументом в Postgres
table.column%type foo
или
sometype foo
запрашивающих например pg_proc?
Можно ли узнать, если аргумент в функции в Postgres был определен какполучить метаданные о функции с table.column% типа-аргументом в Postgres
table.column%type foo
или
sometype foo
запрашивающих например pg_proc?
Столбец proargtypes
в pg_proc
представляет собой массив типов всех аргументов функции. Затем каждый тип можно перекрестно ссылать на pg_type.oid
.
Так что, если я определить функцию следующим образом:
[email protected]@[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 просто "имя". поэтому, похоже, ответ здесь «нет», я боюсь.