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)
person
Vao Tsun
schedule
05.05.2018