The catalog pg_attrdef stores column default values. The main information about columns is stored in pg_attribute (see below). Only columns that explicitly specify a default value (when the table is created or the column is added) will have an entry here.
Table 49-6. pg_attrdef Columns
|oid||oid||Row identifier (hidden attribute; must be explicitly selected)|
|adrelid||oid||pg_class.oid||The table this column belongs to|
|adnum||int2||pg_attribute.attnum||The number of the column|
|adbin||pg_node_tree||The internal representation of the column default value|
|adsrc||text||A human-readable representation of the default value|
The adsrc field is historical, and is best not used, because it does not track outside changes that might affect the representation of the default value. Reverse-compiling the adbin field (with
pg_get_expr for example) is a better way to display the default value.
If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.