Skip to content
← Catalog atlas / pg_attrdef

SYSTEM CATALOG · System catalog

pg_attrdef

The catalog pg_attrdef stores column default expressions and generation expressions. The main information about columns is stored in pg_attribute. Only columns for which a default expression or generation expression has been explicitly set will have an entry here.

First seen PG 9.0Last seen PG 19Columns 4

Checked column by column against a PostgreSQL 18.6 instance · Raw measurement record ↗

Columns PostgreSQL 18

pg_attrdef
COLUMNTYPEDESCRIPTION
oid oidNOT NULL Row identifier
adrelid oidNOT NULL The table this column belongs toReferences:pg_class.oid
adnum smallintNOT NULLDocumented as:int2 The number of the columnReferences:pg_attribute.attnum
adbin pg_node_treeNOT NULL The column default or generation expression, in nodeToString() representation. Use pg_get_expr(adbin, adrelid) to convert it to an SQL expression.

Columns marked "implicit" are not included in SELECT *; some early statistics views are completed from same-version source, and the extra provenance is shown in the column description.

Common system columns 6

System attributes PostgreSQL provides, normally not expanded by SELECT *. Kept separately so they are not mixed in with ordinary columns.

ColumnsTypeattnum
tableoidoid-6
cmaxcid-5
xmaxxid-4
cmincid-3
xminxid-2
ctidtid-1

Column evolution matrix

Hover a cell for the column type
PresentAdded / type or attribute changeRemoved
COLUMN9.09.19.29.39.49.59.610111213141516171819
oid
adrelid
adnum
adbin
adsrc

9.0 is the coverage baseline; a column already present in the baseline is not marked as added. The matrix aligns columns by name, so a rename appears as the old column removed and a new column added.

Evolution timeline

Changes between adjacent majors

PostgreSQL 18 ← 17

1 column description updatesCatalog description updated

PostgreSQL 12 ← 11

− adsrc~ adbin: not_null: false → true~ oid: implicit → ordinary2 column description updatesCatalog description updated

PostgreSQL 9.3 ← 9.2

1 column description updates

PostgreSQL 9.1 ← 9.0

~ adbin: text → pg_node_tree

Compare any two versions

Pick two versions to see added, removed, and retyped columns. The interactive comparison needs JavaScript; the evolution timeline reads fine without it.