| attrelid | oid | pg_class.oid | The table this column belongs to |
| attname | name | | The column name |
| atttypid | oid | pg_type.oid | The data type of this column |
| attstattarget | int4 | | attstattarget controls the level of detail
of statistics accumulated for this column by
ANALYZE.
A zero value indicates that no statistics should be collected.
A negative value says to use the system default statistics target.
The exact meaning of positive values is data type-dependent.
For scalar data types, attstattarget
is both the target number of "most common values"
to collect, and the target number of histogram bins to create
|
| attlen | int2 | | A copy of pg_type.typlen of this column's
type
|
| attnum | int2 | | The number of the column. Ordinary columns are numbered from 1
up. System columns, such as oid,
have (arbitrary) negative numbers
|
| attndims | int4 | | Number of dimensions, if the column is an array type; otherwise 0.
(Presently, the number of dimensions of an array is not enforced,
so any nonzero value effectively means "it's an array")
|
| attcacheoff | int4 | | Always -1 in storage, but when loaded into a row descriptor
in memory this may be updated to cache the offset of the attribute
within the row
|
| atttypmod | int4 | | atttypmod records type-specific data
supplied at table creation time (for example, the maximum
length of a varchar column). It is passed to
type-specific input functions and length coercion functions.
The value will generally be -1 for types that do not need atttypmod
|
| attbyval | bool | | A copy of pg_type.typbyval of this column's type
|
| attstorage | char | | Normally a copy of pg_type.typstorage of this
column's type. For TOAST-able data types, this can be altered
after column creation to control storage policy
|
| attalign | char | | A copy of pg_type.typalign of this column's type
|
| attnotnull | bool | | This represents a not-null constraint. It is possible to
change this column to enable or disable the constraint
|
| atthasdef | bool | | This column has a default value, in which case there will be a
corresponding entry in the pg_attrdef
catalog that actually defines the value
|
| attisdropped | bool | | This column has been dropped and is no longer valid. A dropped
column is still physically present in the table, but is
ignored by the parser and so cannot be accessed via SQL
|
| attislocal | bool | | This column is defined locally in the relation. Note that a column may
be locally defined and inherited simultaneously
|
| attinhcount | int4 | | The number of direct ancestors this column has. A column with a
nonzero number of ancestors cannot be dropped nor renamed
|