Move pg_attrdef manipulation code into new file catalog/pg_attrdef.c.
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 21 Mar 2022 18:38:23 +0000 (14:38 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 21 Mar 2022 18:38:23 +0000 (14:38 -0400)
commit17f3bc09284e1b529cdf524bbba709af6493f30c
tree1b4d7460118487d5c560657e1b09804df8edd401
parent7b6ec86532c2ca585d671239bba867fe380448ed
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
src/backend/catalog/Makefile
src/backend/catalog/heap.c
src/backend/catalog/objectaddress.c
src/backend/catalog/pg_attrdef.c [new file with mode: 0644]
src/backend/commands/tablecmds.c
src/include/catalog/heap.h
src/include/catalog/pg_attrdef.h