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 consulte também pg_index), seqüências, visões, tipos compostos, e alguns tipos de relação especiais; consulte 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 42-9. Colunas de 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 | |
reltablespace | oid | pg_tablespace.oid | O espaço de tabelas onde a relação está armazenada. Se for zero, implica no espaço de tabelas padrão do banco de dados (Sem significado se a relação não possuir arquivo em disco). |
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 uns poucos comandos de DLL como o CREATE INDEX. | |
reltuples | float4 | Número de linhas na tabela. Esta é apenas uma estimativa utilizada pelo planejador. Atualizado pelos comandos VACUUM, ANALYZE e uns poucos comandos de DLL como o 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. Consulte também pg_attribute.attnum. | |
relchecks | int2 | Número de restrições de verificação na tabela; consulte o catálogo pg_constraint. | |
reltriggers | int2 | Número de gatilhos na tabela; consulte 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; consulte o catálogo pg_rewrite. | |
relhassubclass | bool | Verdade se a tabela possui (ou possuiu) uma tabela que herda desta. | |
relacl | aclitem[] | Privilégios de acesso; consulte os comandos GRANT e REVOKE para obter detalhes. |