42.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 42-7. Colunas de 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
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 ativar ou desativar 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.

Na entrada em pg_attribute da coluna removida, atttypid é redefinido como zero, mas attlen e os outros campos copiados de pg_type ainda são válidos. Esta arrumação é necessária para lidar com a situação onde o tipo de dado da coluna removida foi removido posteriormente, e portanto não existe mais a linha em pg_type. attlen e os outros campos podem ser utilizados para interpretar o conteúdo da linha da tabela.

SourceForge.net Logo CSS válido!