attrelid | oid | pg_class.oid | The table this column belongs to |
attname | name | | 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 datatype-dependent.
For scalar datatypes, attstattarget
is both the target number of "most common values"
to collect, and the target number of histogram bins to create.
|
attlen | int2 | | This is 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 tuple descriptor
in memory this may be updated to cache the offset of the attribute
within the tuple.
|
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 typmod.
|
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 TOASTable datatypes, this can be altered
after column creation to control storage policy.
|
attisset | bool | | If true, this attribute is a set. In that case, what is really
stored in the attribute is the OID of a tuple in the
pg_proc catalog. The
pg_proc tuple contains the query
string that defines this set - i.e., the query to run to get
the set. So the atttypid (see
above) refers to the type returned by this query, but the
actual length of this attribute is the length (size) of an
oid. --- At least this is the theory. All this
is probably quite broken these days.
|
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 field 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.
|