O catálogo pg_attribute armazena informações sobre colunas de tabela. Há exatamente uma linha em pg_attribute para cada coluna em cada tabela do banco de dados. (Há também entradas de atributos para índices e, na verdade, todos os objetos que possuem entradas em pg_class.)
O termo atributo equivale a coluna sendo usado por motivos históricos.
Tabela 52.7. Colunas de pg_attribute
Coluna Tipo de dados Descrição |
|---|
A tabela à qual esta coluna pertence |
O nome da coluna |
O tipo de dados dessa coluna (zero para uma coluna excluída) |
Uma cópia de |
O número da coluna.
As colunas comuns são numeradas de 1 para cima.
As colunas do sistema, como |
|
Número de dimensões, se a coluna for do tipo matriz; caso contrário, 0. (No momento, o número de dimensões de uma matriz não é obrigatório, então qualquer valor diferente de zero significa efetivamente “que é uma matriz”.) |
Uma cópia de |
Uma cópia de |
Normalmente uma cópia de |
O método de compressão corrente da coluna.
Normalmente é |
Esta coluna possui uma restrição de não-nulo (possivelmente inválida). |
Esta coluna tem uma expressão padrão ou expressão de geração,
caso em que haverá uma entrada correspondente no catálogo
pg_attrdef que realmente define a expressão.
(Verifique |
Esta coluna tem um valor usado quando a coluna está
totalmente ausente da linha, como acontece quando uma coluna
é adicionada com um valor |
Se for um byte zero ( |
Se for um byte zero ( |
Esta coluna foi excluída e não é mais válida. Uma coluna excluída permanece fisicamente presente na tabela, mas é ignorada pelo analisador e, portanto, não pode ser acessada via SQL. |
Esta coluna é definida localmente na relação. Note-se que uma coluna pode ser definida localmente e herdada simultaneamente. |
O número de ancestrais diretos que esta coluna possui. Uma coluna com um número diferente de zero de ancestrais não pode ser excluída nem renomeada. |
A ordenação definida da coluna, ou zero se a coluna não for de um tipo de dados ordenável. |
|
Privilégios de acesso no nível de coluna, se tiver sido concedido algum especificamente nesta coluna. |
Opções no nível de atributo, na forma de cadeias de caracteres “palavra-chave=valor” |
Opções do empacotador de dados estrangeiros no nível de atributo, na forma de cadeias de caracteres “palavra-chave=valor” |
Esta coluna possui uma matriz de um elemento contendo o valor
usado quando a coluna está totalmente ausente da linha, como
acontece quando a coluna é adicionada com um valor
|
Na entrada pg_attribute de uma
coluna excluída, atttypid é redefinido
para zero, mas attlen e os outros campos
copiados de pg_type ainda são válidos.
Este arranjo é necessário para lidar com a situação em que o tipo de
dados da coluna excluída foi excluído posteriormente e, portanto,
não há mais nenhuma linha em pg_type.
Então attlen e os demais campos podem ser
usados para interpretar o conteúdo de uma linha da tabela.