split TOAST support out of postgres.h

Peter Eisentraut <peter.eisentraut@enterprisedb.com>

From: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2022-12-28T13:07:14Z
Lists: pgsql-hackers

Attachments

Most backend code doesn't actually need the variable-length data types 
support (TOAST support) in postgres.h.  So I figured we could try to put 
it into a separate header file.  That makes postgres.h more manageable, 
and it avoids including a bunch of complicated unused stuff everywhere. 
I picked "varatt.h" as the name.  Then we could either

1) Include varatt.h in postgres.h, similar to elog.h and palloc.h.  That 
way we clean up the files a bit but don't change any external interfaces.

2) Just let everyone who needs it include the new file.

3) Compromise: You can avoid most "damage" by having fmgr.h include 
varatt.h.  That satisfies most data types and extension code.  That way, 
there are only a few places that need an explicit include of varatt.h.

I went with the last option in my patch.

Thoughts?

Commits

  1. New header varatt.h split off from postgres.h