2015-06-11 9:29 GMT-03:00 Márcio A. Sepp <[email protected]>:
> Preciso pegar os comentários das tabelas, dos campos, constraints... onde
> eu consigo encontrar no catálogo estas informações?
>
Você encontra essa informação na tabela pg_catalog.pg_description [1] (ou
pg_shdescription [2] para objetos globais).
Por exemplo, para buscar o comentário da tabela "foo":
SELECT description
FROM pg_description
WHERE objoid = 'foo'::regclass
AND classoid = 'pg_catalog.pg_class'::regclass -- é uma tabela
AND objsubid = 0 -- 0 é comentário da tabela, <> 0 da coluna
Ou da coluna "bar" da tabela "foo":
SELECT description
FROM pg_description
WHERE objoid = 'foo'::regclass
AND classoid = 'pg_catalog.pg_class'::regclass
AND objsubid = (
SELECT attnum
FROM pg_attribute
WHERE attrelid = 'foo'::regclass
AND attname = 'bar'
)
Dito tudo isto, tem duas funções que facilitam muito essas operações, a
obj_description e col_description [3], os exemplos acima ficariam
simplesmente:
SELECT obj_description('foo'::regclass, 'pg_class');
SELECT col_description('foo'::regclass, 'bar');
Ainda acho importante mostrar a pg_description, pois se estiver listando
vários objetos, pode ser mais fácil um JOIN com esta tabela.
OBS: Não testei os códigos acima, se testar e tiver erros, me avise. Ok?
[1]
http://www.postgresql.org/docs/current/static/catalog-pg-description.html
[2]
http://www.postgresql.org/docs/current/static/catalog-pg-shdescription.html
[3]
http://www.postgresql.org/docs/current/static/functions-info.html#FUNCTIONS-INFO-COMMENT-TABLE
Atenciosamente,
--
Matheus de Oliveira
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral