so=# create function t.fn() returns int as
$$
begin return 1; end; $$ language plpgsql;
CREATE FUNCTION
so=# comment on function t.fn() is 'some comment';
COMMENT
so=# select * from obj_description('t.fn'::regproc);
obj_description
-----------------
some comment
(1 row)
regclass
для отношений, для использования функции regproc
обновление
https://www.postgresql.org/docs/current/static/functions-info.html#FUNCTIONS-INFO-COMMENT-TABLE
Двухпараметрическая форма obj_description возвращает комментарий для
объект базы данных, указанный его OID и именем содержащего
системный каталог. Например, obj_description (123456, 'pg_class') будет
получить комментарий для таблицы с OID 123456. Однопараметрический
Форма obj_description требует только OID объекта. Это устарело
поскольку нет гарантии, что идентификаторы OID уникальны в разных
системные каталоги; следовательно, неправильный комментарий может быть возвращен.
функции oids хранятся в pg_proc
, таблицы и представления в pg_class
(relkind
r
и v
соответственно), таким образом:
select * from obj_description('t.fn'::regproc)
pg_class
для таблиц и представлений, pg_proc
для функций
- ниже приведены запросы:
для всех функций (я добавляю order
и limit
, чтобы показать небольшой список UDF):
so=# select oid::regproc,obj_description(oid,tableoid::regclass::text)
from pg_proc
order by oid desc
limit 2;
oid | obj_description
------+-----------------
t.fn | some comment
a | blah
(2 rows)
для всех таблиц:
so=# select oid::regclass,obj_description(oid,tableoid::regclass::text) from pg_class where relkind = 'r' order by oid desc limit 1;
oid | obj_description
---------------+---------------------
t."WeirdMix$" | table with bad name
(1 row)
соответственно для просмотров:
so=# select oid::regclass,obj_description(oid,tableoid::regclass::text) from pg_class where relkind = 'v' order by oid desc limit 1;
oid | obj_description
-----+-----------------
v | view this is
(1 row)