pgsql: Move pg_attrdef manipulation code into new file catalog/pg_attrd - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Move pg_attrdef manipulation code into new file catalog/pg_attrd
Date
Msg-id E1nWNCK-000ku8-T5@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
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

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/17f3bc09284e1b529cdf524bbba709af6493f30c

Modified Files
--------------
src/backend/catalog/Makefile        |   1 +
src/backend/catalog/heap.c          | 330 ---------------------------
src/backend/catalog/objectaddress.c |  95 +-------
src/backend/catalog/pg_attrdef.c    | 428 ++++++++++++++++++++++++++++++++++++
src/backend/commands/tablecmds.c    |   1 +
src/include/catalog/heap.h          |   8 +-
src/include/catalog/pg_attrdef.h    |  13 ++
7 files changed, 450 insertions(+), 426 deletions(-)


pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: pgsql: Fix risk of deadlock failure while dropping a partitioned index.
Next
From: Tom Lane
Date:
Subject: pgsql: Fix bogus dependency handling for GENERATED expressions.