O catálogo pg_class descreve
tabelas e outros objetos que possuem colunas ou que, de outra forma,
são semelhantes a uma tabela.
Isto inclui índices (mas veja também pg_index),
sequências (mas veja também pg_sequence),
visões, visões materializadas, tipos de dados compostos e tabelas
TOAST; veja relkind.
Abaixo, quando nos referimos a todos estes tipos de objetos, falamos
de “relações”.
Nem todas as colunas de pg_class
têm significado para todos os tipos de relação.
Tabela 52.11. Colunas de pg_class
Coluna Tipo de dados Descrição |
|---|
Identificador da linha |
Nome da tabela, índice, visão, etc. |
OID do espaço de nomes que contém esta relação |
OID do tipo de dados que corresponde ao tipo de linha dessa tabela, se houver; zero para índices, sequências e tabelas TOAST, que não possuem entrada em pg_type. |
Para tabelas tipadas [a], o OID do tipo de dados composto subjacente; zero para todas as outras relações |
Dono da relação |
O método de acesso usado para acessar esta tabela ou índice.
Sem significado se a relação for uma sequência ou não possuir
arquivo em disco, exceto para tabelas particionadas, nas quais,
se definido, tem precedência sobre
|
|
Nome do arquivo em disco dessa relação; zero significa que ela é uma relação “mapeada” cujo nome do arquivo em disco é determinado pelo estado de baixo-nível |
O espaço de tabelas onde esta relação está armazenada. Se for zero, considera-se o espaço de tabelas padrão do banco de dados. Sem significado quando a relação não possui um arquivo em disco, exceto no caso de tabelas particionadas, onde se trata do espaço de tabelas onde as partições serão criadas quando não for especificado algum no comando de criação. |
Tamanho da representação em disco dessa tabela em páginas
(de tamanho |
Número de linhas ativas na tabela.
Esta é apenas uma estimativa usada pelo planejador.
É atualizado por VACUUM,
ANALYZE, e alguns poucos comandos de
DDL, como CREATE INDEX.
Se a tabela nunca foi limpa ou analisada,
|
Número de páginas marcadas como totalmente visíveis no mapa de visibilidade da tabela. Esta é apenas uma estimativa usada pelo planejador. É atualizado por VACUUM, ANALYZE, e alguns poucos comandos de DDL, como CREATE INDEX. |
Número de páginas marcadas como inteiramente congeladas no
mapa de visibilidade da tabela.
É apenas uma estimativa usada para acionar a limpeza
automática (autovacuum).
Também pode ser usado em conjunto com
|
OID da tabela TOAST associada a esta tabela, zero se nenhuma. A tabela TOAST armazena atributos grandes “fora de linha” em uma tabela secundária. |
Verdade se for uma tabela e tiver (ou tiver tido recentemente) algum índice |
Verdade se esta tabela for compartilhada por todos os bancos de dados da instância. Apenas determinados catálogos do sistema (como pg_database) são compartilhados. |
|
|
Número de colunas do usuário na relação (as colunas do sistema não são contadas). Deve haver esta quantidade de entradas correspondentes em pg_attribute. Veja também pg_attribute.attnum. |
Número de restrições |
Verdade se a tabela tiver (ou já teve) regras; veja o catálogo pg_rewrite |
Verdade se a tabela tiver (ou já teve) gatilhos; veja o catálogo pg_trigger |
Verdade se a tabela ou o índice tiver (ou já teve) quaisquer tabelas filhas de herança ou partições. |
Verdade se a tabela tiver a segurança no nível de linha ativa; veja o catálogo pg_policy |
Verdade se a segurança no nível de linha (quando ativa) também se aplicar ao dono da tabela; veja o catálogo pg_policy |
Verdade se a relação estiver preenchida (é verdade para todas as relações, exceto algumas visões materializadas) |
Colunas usadas para formar a “identidade da réplica”
para as linhas:
|
Verdade se a tabela ou índice for uma partição |
Para as novas relações escritas durante uma operação de DDL que requer a reescrita da tabela, contém o OID da relação original; caso contrário, zero. Este estado só é visível internamente; este campo nunca deve conter nada além de zero para uma relação visível ao usuário. |
Todos os IDs de transação anteriores a este foram substituídos por
um ID de transação permanente (“congelado”) nesta tabela.
É usado para rastrear se a tabela precisa ser limpa para evitar
o reinício do ID de transação, ou para permitir que
|
Todos os IDs multixact anteriores a este
foram substituídos por um ID de transação nesta tabela.
É usado para rastrear se a tabela precisa ser limpa para evitar
o reinício do ID multixact, ou para
permitir que |
Privilégios de acesso; veja Privilégios para obter detalhes |
Opções específicas do método de acesso, na forma de cadeias de caracteres “palavra-chave=valor” |
Se a tabela for uma partição (veja
|
[a] Tabelas tipadas são tabelas definidas com um tipo de dados estruturado definido pelo usuário. IBM DB2 – Typed tables (N. T.) |
Vários sinalizadores booleanos em
pg_class são mantidos frouxamente:
são garantidos como sendo verdade se este for o estado correto, mas
não podem ser redefinidos para falso imediatamente quando a condição
não for mais verdadeira.
Por exemplo, relhasindex é definido por
CREATE INDEX, mas nunca é limpo por
DROP INDEX.
Em vez disso, VACUUM limpa
relhasindex se descobrir que a tabela
não tem índices.
Este arranjo evita condições de concorrência e melhora a simultaneidade.