43.7. pg_attribute

O catálogo pg_attribute armazena informações sobre as colunas das tabelas. Existe exatamente uma linha em pg_attribute para cada coluna de cada tabela do banco de dados (Também existem entradas de atributo para os índices, e todos os objetos que possuem entrada em pg_class).

O termo atributo equivale a coluna, sendo usado por motivos históricos.

Tabela 43-7. Colunas do catálogo pg_attribute

Nome Tipo Referencia Descrição
attrelid oid pg_class .oid Tabela que esta coluna pertence
attname name   Nome da coluna
atttypid oid pg_type .oid Tipo de dado desta coluna
attstattarget int4   attstattarget controla o nível de detalhe das estatísticas acumuladas para esta coluna pelo comando ANALYZE . O valor zero indica que não deve ser coletada nenhuma estatística. Um valor negativo diz para usar o padrão do sistema para estatísticas. O significado exato dos valores positivos é dependente do tipo de dado. Para os tipos de dado escalares, attstattarget é tanto o número de "valores mais comuns" a serem coletados, quanto o número de barras do histograma a serem criadas
attlen int2   Cópia de pg_type.typlen do tipo desta coluna
attnum int2   Número da coluna. As colunas comuns são numeradas a partir de um. As colunas do sistema, tal como oid, possuem números negativos (arbitrários)
attndims int4   Número de dimensões, se a coluna for de um tipo matriz; senão zero (Atualmente o número de dimensões de uma matriz não é imposto, portanto qualquer valor diferente de zero significa de fato "isto é uma matriz")
attcacheoff int4   Sempre -1 no armazenamento, mas quando carregado na memória em um descritor de linha pode ser atualizado para guardar o deslocamento do atributo na linha.
atttypmod int4   atttypmod registra dados específicos do tipo, fornecidos na hora da criação da tabela (por exemplo, o comprimento máximo de uma coluna varchar). É passado para as funções de entrada específicas dos tipos, e para as funções de imposição de comprimento. Geralmente o valor é -1 para os tipos que não necessitam de atttypmod
attbyval bool   Cópia de pg_type.typbyval do tipo desta coluna
attstorage char   Normalmente uma cópia de pg_type.typstorage do tipo desta coluna. Para os tipos de dado fatiáveis (TOAST), pode ser alterado após a criação da coluna para controlar a política de armazenamento
attisset bool   Se for verdade, este atributo é um conjunto. Neste caso, o que realmente é armazenado no atributo é o OID da linha no catálogo pg_proc. A linha pg_proc contém a cadeia de caracteres da consulta que define este conjunto, ou seja, a consulta a ser executada para obter o conjunto. Portanto, atttypid (veja acima) se refere ao tipo retornado por esta consulta, mas o comprimento real deste atributo é o comprimento (tamanho) de um oid; ao menos esta é a teoria. Provavelmente atualmente existem muitas diferenças
attalign char   Cópia de pg_type.typalign do tipo desta coluna
attnotnull bool   Representa uma restrição de não-nulo. É possível modificar esta coluna para habilitar ou desabilitar a restrição
atthasdef bool   Indica se esta coluna possui um valor padrão e, neste caso, existe uma entrada correspondente no catálogo pg_attrdef que realmente define o valor
attisdropped bool   Indica se esta coluna foi removida e, portanto, não é mais válida. Uma coluna removida continua presente na tabela, mas é ignorada pelo analisador e, portanto, não pode ser acessada via SQL
attislocal bool   Indica se a coluna é definida localmente na relação. Deve ser observado que a coluna pode ser definida localmente e herdada simultaneamente.
attinhcount int4   Número de ancestrais diretos que a coluna possui. Uma coluna com um número de ancestrais diferente de zero não pode ser removida nem renomeada.
SourceForge.net Logo