Move pg_attrdef manipulation code into new file catalog/pg_attrdef.c.

Tom Lane <tgl@sss.pgh.pa.us>

Commit: 17f3bc09284e1b529cdf524bbba709af6493f30c
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2022-03-21T18:38:23Z
Releases: 15.0
Move pg_attrdef manipulation code into new file catalog/pg_attrdef.c.

This is a pure refactoring commit: there isn't (I hope) any functional
change.

StoreAttrDefault and RemoveAttrDefault[ById] are moved from heap.c,
reducing the size of that overly-large file by about 300 lines.
I took the opportunity to trim unused #includes from heap.c, too.

Two new functions for translating between a pg_attrdef OID and the
relid/attnum of the owning column are created by extracting ad-hoc
code from objectaddress.c.  This already removes one copy of said
code, and a follow-on bug fix will create more callers.

The only other function directly manipulating pg_attrdef is
AttrDefaultFetch.  I judged it was better to leave that in relcache.c,
since it shares special concerns about recursion and error handling
with the rest of that module.

Discussion: https://postgr.es/m/651168.1647451676@sss.pgh.pa.us

Files

Discussion