O catálogo pg_class cataloga as tabelas e tudo mais que possui colunas, ou é de alguma forma semelhante a uma tabela. Isto inclui os índices (mas veja também pg_index), seqüências, visões e alguns tipos de relação especiais; veja relkind. Abaixo, para nos referirmos a todos estes tipos de objetos falamos "relações". Nem todas as colunas possuem significado em todos os tipos de relação.
Tabela 43-9. Colunas do catálogo pg_class
Nome | Tipo | Referencia | Descrição |
---|---|---|---|
relname | name | Nome da tabela, índice, visão, etc. | |
relnamespace | oid | pg_namespace .oid | OID do espaço de nomes que contém esta relação. |
reltype | oid | pg_type .oid | OID do tipo de dado que corresponde ao tipo linha desta tabela, caso haja algum (zero para índices, que não possuem entrada em pg_type). |
relowner | int4 | pg_shadow .usesysid | Dono da relação |
relam | oid | pg_am .oid | Se for um índice, o método de acesso usado (B-tree, hash, etc.) |
relfilenode | oid | Nome do arquivo em disco desta relação; 0 se não houver nenhum | |
relpages | int4 | Tamanho da representação em disco desta tabela em páginas (com tamanho BLCKSZ). Esta é apenas uma estimativa utilizada pelo planejador. Atualizado pelos comandos VACUUM, ANALYZE e CREATE INDEX. | |
reltuples | float4 | Número de linhas na tabela. Esta é apenas uma estimativa utilizada pelo planejador. Atualizado pelos comandos VACUUM, ANALYZE e CREATE INDEX. | |
reltoastrelid | oid | pg_class .oid | OID da tabela TOAST associada a esta tabela, 0 se não houver nenhuma. A tabela TOAST armazena atributos grandes "fora de linha", em uma tabela secundária. |
reltoastidxid | oid | pg_class .oid | Para a tabela TOAST, o OID de seu índice. 0 se não for uma tabela TOAST. |
relhasindex | bool | Verdade se for uma tabela e possui (ou possuía recentemente) algum índice. É definido por CREATE INDEX, mas não é limpo imediatamente por DROP INDEX. O comando VACUUM limpa relhasindex quando descobre que a tabela não possui índices. | |
relisshared | bool | Verdade se esta tabela for compartilhada entre todos os bancos de dados do agrupamento. Somente alguns catálogos do sistema, como pg_database, são compartilhados | |
relkind | char | r = tabela comum, i = índice, S = seqüência, v = visão, c = tipo composto, s = especial, t = tabela TOAST | |
relnatts | int2 | Número de colunas de usuário na relação (colunas do sistema não são contadas). Deve haver uma quantidade de entradas correspondente em pg_attribute. Veja também pg_attribute.attnum. | |
relchecks | int2 | Número de restrições de verificação na tabela; veja o catálogo pg_constraint. | |
reltriggers | int2 | Número de gatilhos na tabela; veja o catálogo pg_trigger. | |
relukeys | int2 | Não utilizado (Não é o número de chaves únicas) | |
relfkeys | int2 | Não utilizado (Não é o número de chaves estrangeiras na tabela) | |
relrefs | int2 | Não utilizado | |
relhasoids | bool | Verdade se for gerado um OID para cada linha da relação. | |
relhaspkey | bool | Verdade se a tabela possui (ou já possuiu) uma chave primária. | |
relhasrules | bool | Verdade se a tabela possui regras; veja o catálogo pg_rewrite. | |
relhassubclass | bool | Verdade se ao menos uma tabela herda desta | |
relacl | aclitem[] | Privilégios de acesso; veja as descrições dos comandos GRANT e REVOKE para obter detalhes. |