postgresql/src/include/access
Tom Lane 0a20ff54f5 Split up guc.c for better build speed and ease of maintenance.
guc.c has grown to be one of our largest .c files, making it
a bottleneck for compilation.  It's also acquired a bunch of
knowledge that'd be better kept elsewhere, because of our not
very good habit of putting variable-specific check hooks here.
Hence, split it up along these lines:

* guc.c itself retains just the core GUC housekeeping mechanisms.
* New file guc_funcs.c contains the SET/SHOW interfaces and some
  SQL-accessible functions for GUC manipulation.
* New file guc_tables.c contains the data arrays that define the
  built-in GUC variables, along with some already-exported constant
  tables.
* GUC check/assign/show hook functions are moved to the variable's
  home module, whenever that's clearly identifiable.  A few hard-
  to-classify hooks ended up in commands/variable.c, which was
  already a home for miscellaneous GUC hook functions.

To avoid cluttering a lot more header files with #include "guc.h",
I also invented a new header file utils/guc_hooks.h and put all
the GUC hook functions' declarations there, regardless of their
originating module.  That allowed removal of #include "guc.h"
from some existing headers.  The fallout from that (hopefully
all caught here) demonstrates clearly why such inclusions are
best minimized: there are a lot of files that, for example,
were getting array.h at two or more levels of remove, despite
not having any connection at all to GUCs in themselves.

There is some very minor code beautification here, such as
renaming a couple of inconsistently-named hook functions
and improving some comments.  But mostly this just moves
code from point A to point B and deals with the ensuing
needs for #include adjustments and exporting a few functions
that previously weren't exported.

Patch by me, per a suggestion from Andres Freund; thanks also
to Michael Paquier for the idea to invent guc_funcs.c.

Discussion: https://postgr.es/m/587607.1662836699@sss.pgh.pa.us
2022-09-13 11:11:45 -04:00
..
amapi.h Revert changes in HOT handling of BRIN indexes 2022-06-16 15:02:49 +02:00
amvalidate.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
attmap.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
attnum.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
brin.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
brin_internal.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
brin_page.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
brin_pageops.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
brin_revmap.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
brin_tuple.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
brin_xlog.h Change internal RelFileNode references to RelFileNumber or RelFileLocator. 2022-07-06 11:39:09 -04:00
bufmask.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
clog.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
commit_ts.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
detoast.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
genam.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
generic_xlog.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
gin.h Revert "Convert *GetDatum() and DatumGet*() macros to inline functions" 2022-09-12 19:57:07 +02:00
gin_private.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
ginblock.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
ginxlog.h Change internal RelFileNode references to RelFileNumber or RelFileLocator. 2022-07-06 11:39:09 -04:00
gist.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
gist_private.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
gistscan.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
gistxlog.h Change internal RelFileNode references to RelFileNumber or RelFileLocator. 2022-07-06 11:39:09 -04:00
hash.h Add macros in hash and btree AMs to get the special area of their pages 2022-04-01 13:24:50 +09:00
hash_xlog.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
heapam.h Pre-beta mechanical code beautification. 2022-05-12 15:17:30 -04:00
heapam_xlog.h Change internal RelFileNode references to RelFileNumber or RelFileLocator. 2022-07-06 11:39:09 -04:00
heaptoast.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
hio.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
htup.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
htup_details.h Change one AssertMacro to Assert 2022-04-06 09:10:24 +02:00
itup.h Convert macros to static inline functions (itup.h) 2022-07-19 07:24:55 +02:00
multixact.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nbtree.h Add missing parenthesis to max item size macro. 2022-08-05 13:06:19 -07:00
nbtxlog.h Fix inconsistent comments for some function declarations in headers 2022-08-04 17:36:21 +09:00
parallel.h Apply PGDLLIMPORT markings broadly. 2022-04-08 08:16:38 -04:00
printsimple.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
printtup.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
relation.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
reloptions.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
relscan.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
rewriteheap.h Change internal RelFileNode references to RelFileNumber or RelFileLocator. 2022-07-06 11:39:09 -04:00
rmgr.h Pre-beta mechanical code beautification. 2022-05-12 15:17:30 -04:00
rmgrlist.h Update the comment in rmgrlist.h to match it to the code. 2022-08-30 09:16:41 +05:30
sdir.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
session.h Apply PGDLLIMPORT markings broadly. 2022-04-08 08:16:38 -04:00
skey.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
slru.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
spgist.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
spgist_private.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
spgxlog.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
stratnum.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
subtrans.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
syncscan.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
sysattr.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
table.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
tableam.h Split up guc.c for better build speed and ease of maintenance. 2022-09-13 11:11:45 -04:00
timeline.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
toast_compression.h Apply PGDLLIMPORT markings broadly. 2022-04-08 08:16:38 -04:00
toast_helper.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
toast_internals.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
transam.h Fix visibility check when XID is committed in CLOG but not in procarray. 2022-06-27 08:21:08 +03:00
tsmapi.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
tupconvert.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
tupdesc.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
tupdesc_details.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
tupmacs.h Convert macros to static inline functions (tupmacs.h) 2022-07-18 08:01:27 +02:00
twophase.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
twophase_rmgr.h Apply PGDLLIMPORT markings broadly. 2022-04-08 08:16:38 -04:00
valid.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
visibilitymap.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
visibilitymapdefs.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
xact.h Force immediate commit after CREATE DATABASE etc in extended protocol. 2022-07-26 13:07:03 -04:00
xlog.h Split up guc.c for better build speed and ease of maintenance. 2022-09-13 11:11:45 -04:00
xlog_internal.h Convert macros to static inline functions (xlog_internal.h) 2022-07-15 14:56:00 +02:00
xlogarchive.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
xlogdefs.h Remove configure probe for fdatasync. 2022-08-05 16:37:38 +12:00
xloginsert.h Add overflow protection for block-related data in WAL records 2022-07-27 13:35:40 +09:00
xlogprefetcher.h Apply PGDLLIMPORT markings broadly. 2022-04-08 08:16:38 -04:00
xlogreader.h Fix recovery_prefetch with low maintenance_io_concurrency. 2022-09-08 21:44:55 +12:00
xlogrecord.h Change internal RelFileNode references to RelFileNumber or RelFileLocator. 2022-07-06 11:39:09 -04:00
xlogrecovery.h Apply PGDLLIMPORT markings broadly. 2022-04-08 08:16:38 -04:00
xlogstats.h Pre-beta mechanical code beautification. 2022-05-12 15:17:30 -04:00
xlogutils.h Change internal RelFileNode references to RelFileNumber or RelFileLocator. 2022-07-06 11:39:09 -04:00