From 45326c5a11530cff5db99c6d4b393439cc901f26 Mon Sep 17 00:00:00 2001 From: Alvaro Herrera Date: Tue, 28 Aug 2012 18:02:07 -0400 Subject: [PATCH] Split resowner.h This lets files that are mere users of ResourceOwner not automatically include the headers for stuff that is managed by the resowner mechanism. --- src/backend/access/common/tupdesc.c | 2 +- src/backend/access/transam/xact.c | 2 + src/backend/commands/dbcommands.c | 1 + src/backend/commands/extension.c | 1 + src/backend/postmaster/autovacuum.c | 1 + src/backend/postmaster/bgwriter.c | 1 + src/backend/postmaster/checkpointer.c | 1 + src/backend/postmaster/walwriter.c | 1 + src/backend/storage/buffer/bufmgr.c | 2 +- src/backend/storage/buffer/localbuf.c | 2 +- src/backend/storage/file/fd.c | 2 +- src/backend/storage/lmgr/lock.c | 2 +- src/backend/utils/cache/catcache.c | 2 +- src/backend/utils/cache/evtcache.c | 1 + src/backend/utils/cache/plancache.c | 1 + src/backend/utils/cache/relcache.c | 2 +- src/backend/utils/cache/typcache.c | 1 + src/backend/utils/resowner/resowner.c | 1 + src/backend/utils/time/snapmgr.c | 1 + src/include/utils/portal.h | 1 + src/include/utils/resowner.h | 62 -------------------- src/include/utils/resowner_private.h | 83 +++++++++++++++++++++++++++ src/include/utils/snapmgr.h | 2 + 23 files changed, 106 insertions(+), 69 deletions(-) create mode 100644 src/include/utils/resowner_private.h diff --git a/src/backend/access/common/tupdesc.c b/src/backend/access/common/tupdesc.c index aa1ce800d4..99d0d1802c 100644 --- a/src/backend/access/common/tupdesc.c +++ b/src/backend/access/common/tupdesc.c @@ -24,7 +24,7 @@ #include "parser/parse_type.h" #include "utils/acl.h" #include "utils/builtins.h" -#include "utils/resowner.h" +#include "utils/resowner_private.h" #include "utils/syscache.h" diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c index e787ae7545..e7a6606ec3 100644 --- a/src/backend/access/transam/xact.c +++ b/src/backend/access/transam/xact.c @@ -38,12 +38,14 @@ #include "pgstat.h" #include "replication/walsender.h" #include "replication/syncrep.h" +#include "storage/fd.h" #include "storage/lmgr.h" #include "storage/predicate.h" #include "storage/proc.h" #include "storage/procarray.h" #include "storage/sinvaladt.h" #include "storage/smgr.h" +#include "utils/catcache.h" #include "utils/combocid.h" #include "utils/guc.h" #include "utils/inval.h" diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c index c9b80ad823..2192573173 100644 --- a/src/backend/commands/dbcommands.c +++ b/src/backend/commands/dbcommands.c @@ -45,6 +45,7 @@ #include "pgstat.h" #include "postmaster/bgwriter.h" #include "storage/copydir.h" +#include "storage/fd.h" #include "storage/lmgr.h" #include "storage/ipc.h" #include "storage/procarray.h" diff --git a/src/backend/commands/extension.c b/src/backend/commands/extension.c index 8512cdbe31..0901601fb7 100644 --- a/src/backend/commands/extension.c +++ b/src/backend/commands/extension.c @@ -45,6 +45,7 @@ #include "funcapi.h" #include "mb/pg_wchar.h" #include "miscadmin.h" +#include "storage/fd.h" #include "tcop/utility.h" #include "utils/builtins.h" #include "utils/fmgroids.h" diff --git a/src/backend/postmaster/autovacuum.c b/src/backend/postmaster/autovacuum.c index 7c946804a5..dd8690577c 100644 --- a/src/backend/postmaster/autovacuum.c +++ b/src/backend/postmaster/autovacuum.c @@ -76,6 +76,7 @@ #include "catalog/pg_database.h" #include "commands/dbcommands.h" #include "commands/vacuum.h" +#include "lib/dllist.h" #include "libpq/pqsignal.h" #include "miscadmin.h" #include "pgstat.h" diff --git a/src/backend/postmaster/bgwriter.c b/src/backend/postmaster/bgwriter.c index f98f138e9a..748fd85edb 100644 --- a/src/backend/postmaster/bgwriter.c +++ b/src/backend/postmaster/bgwriter.c @@ -46,6 +46,7 @@ #include "postmaster/bgwriter.h" #include "storage/bufmgr.h" #include "storage/buf_internals.h" +#include "storage/fd.h" #include "storage/ipc.h" #include "storage/lwlock.h" #include "storage/proc.h" diff --git a/src/backend/postmaster/checkpointer.c b/src/backend/postmaster/checkpointer.c index a516856226..c5f32059a7 100644 --- a/src/backend/postmaster/checkpointer.c +++ b/src/backend/postmaster/checkpointer.c @@ -48,6 +48,7 @@ #include "postmaster/bgwriter.h" #include "replication/syncrep.h" #include "storage/bufmgr.h" +#include "storage/fd.h" #include "storage/ipc.h" #include "storage/lwlock.h" #include "storage/proc.h" diff --git a/src/backend/postmaster/walwriter.c b/src/backend/postmaster/walwriter.c index 8a79495581..43139017c2 100644 --- a/src/backend/postmaster/walwriter.c +++ b/src/backend/postmaster/walwriter.c @@ -51,6 +51,7 @@ #include "miscadmin.h" #include "postmaster/walwriter.h" #include "storage/bufmgr.h" +#include "storage/fd.h" #include "storage/ipc.h" #include "storage/lwlock.h" #include "storage/proc.h" diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c index a3bf9a4d44..dba19ebc6d 100644 --- a/src/backend/storage/buffer/bufmgr.c +++ b/src/backend/storage/buffer/bufmgr.c @@ -46,7 +46,7 @@ #include "storage/smgr.h" #include "storage/standby.h" #include "utils/rel.h" -#include "utils/resowner.h" +#include "utils/resowner_private.h" #include "utils/timestamp.h" diff --git a/src/backend/storage/buffer/localbuf.c b/src/backend/storage/buffer/localbuf.c index 46eeaf742d..c18a04de71 100644 --- a/src/backend/storage/buffer/localbuf.c +++ b/src/backend/storage/buffer/localbuf.c @@ -21,7 +21,7 @@ #include "storage/bufmgr.h" #include "utils/guc.h" #include "utils/memutils.h" -#include "utils/resowner.h" +#include "utils/resowner_private.h" /*#define LBDEBUG*/ diff --git a/src/backend/storage/file/fd.c b/src/backend/storage/file/fd.c index 1e54715056..fed25fd7e7 100644 --- a/src/backend/storage/file/fd.c +++ b/src/backend/storage/file/fd.c @@ -57,7 +57,7 @@ #include "storage/fd.h" #include "storage/ipc.h" #include "utils/guc.h" -#include "utils/resowner.h" +#include "utils/resowner_private.h" /* diff --git a/src/backend/storage/lmgr/lock.c b/src/backend/storage/lmgr/lock.c index 891dfa9e7b..32cc229c86 100644 --- a/src/backend/storage/lmgr/lock.c +++ b/src/backend/storage/lmgr/lock.c @@ -44,7 +44,7 @@ #include "storage/standby.h" #include "utils/memutils.h" #include "utils/ps_status.h" -#include "utils/resowner.h" +#include "utils/resowner_private.h" /* This configuration variable is used to set the lock table size */ diff --git a/src/backend/utils/cache/catcache.c b/src/backend/utils/cache/catcache.c index 0307b9652d..d6f6b1c0de 100644 --- a/src/backend/utils/cache/catcache.c +++ b/src/backend/utils/cache/catcache.c @@ -33,7 +33,7 @@ #include "utils/inval.h" #include "utils/memutils.h" #include "utils/rel.h" -#include "utils/resowner.h" +#include "utils/resowner_private.h" #include "utils/syscache.h" #include "utils/tqual.h" diff --git a/src/backend/utils/cache/evtcache.c b/src/backend/utils/cache/evtcache.c index 258b5001ee..6707ea1f82 100644 --- a/src/backend/utils/cache/evtcache.c +++ b/src/backend/utils/cache/evtcache.c @@ -21,6 +21,7 @@ #include "commands/trigger.h" #include "utils/array.h" #include "utils/builtins.h" +#include "utils/catcache.h" #include "utils/evtcache.h" #include "utils/inval.h" #include "utils/memutils.h" diff --git a/src/backend/utils/cache/plancache.c b/src/backend/utils/cache/plancache.c index c42765c25a..8c0391ffcb 100644 --- a/src/backend/utils/cache/plancache.c +++ b/src/backend/utils/cache/plancache.c @@ -61,6 +61,7 @@ #include "tcop/utility.h" #include "utils/inval.h" #include "utils/memutils.h" +#include "utils/resowner_private.h" #include "utils/snapmgr.h" #include "utils/syscache.h" diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c index 2e6776e78f..0f26b34bc4 100644 --- a/src/backend/utils/cache/relcache.c +++ b/src/backend/utils/cache/relcache.c @@ -69,7 +69,7 @@ #include "utils/lsyscache.h" #include "utils/memutils.h" #include "utils/relmapper.h" -#include "utils/resowner.h" +#include "utils/resowner_private.h" #include "utils/syscache.h" #include "utils/tqual.h" diff --git a/src/backend/utils/cache/typcache.c b/src/backend/utils/cache/typcache.c index e6f66df9a1..9af5e86855 100644 --- a/src/backend/utils/cache/typcache.c +++ b/src/backend/utils/cache/typcache.c @@ -55,6 +55,7 @@ #include "catalog/pg_type.h" #include "commands/defrem.h" #include "utils/builtins.h" +#include "utils/catcache.h" #include "utils/fmgroids.h" #include "utils/inval.h" #include "utils/lsyscache.h" diff --git a/src/backend/utils/resowner/resowner.c b/src/backend/utils/resowner/resowner.c index 3ded469d1e..42396fe510 100644 --- a/src/backend/utils/resowner/resowner.c +++ b/src/backend/utils/resowner/resowner.c @@ -25,6 +25,7 @@ #include "storage/proc.h" #include "utils/memutils.h" #include "utils/rel.h" +#include "utils/resowner_private.h" #include "utils/snapmgr.h" /* diff --git a/src/backend/utils/time/snapmgr.c b/src/backend/utils/time/snapmgr.c index 6281c45721..fa514f6b48 100644 --- a/src/backend/utils/time/snapmgr.c +++ b/src/backend/utils/time/snapmgr.c @@ -48,6 +48,7 @@ #include "storage/procarray.h" #include "utils/builtins.h" #include "utils/memutils.h" +#include "utils/resowner_private.h" #include "utils/snapmgr.h" #include "utils/tqual.h" diff --git a/src/include/utils/portal.h b/src/include/utils/portal.h index 4833942654..daafd0e15e 100644 --- a/src/include/utils/portal.h +++ b/src/include/utils/portal.h @@ -48,6 +48,7 @@ #include "datatype/timestamp.h" #include "executor/execdesc.h" +#include "utils/plancache.h" #include "utils/resowner.h" /* diff --git a/src/include/utils/resowner.h b/src/include/utils/resowner.h index e1c992e75e..97e5922b58 100644 --- a/src/include/utils/resowner.h +++ b/src/include/utils/resowner.h @@ -19,12 +19,6 @@ #ifndef RESOWNER_H #define RESOWNER_H -#include "storage/fd.h" -#include "storage/lock.h" -#include "utils/catcache.h" -#include "utils/plancache.h" -#include "utils/snapshot.h" - /* * ResourceOwner objects are an opaque data structure known only within @@ -85,60 +79,4 @@ extern void RegisterResourceReleaseCallback(ResourceReleaseCallback callback, extern void UnregisterResourceReleaseCallback(ResourceReleaseCallback callback, void *arg); -/* support for buffer refcount management */ -extern void ResourceOwnerEnlargeBuffers(ResourceOwner owner); -extern void ResourceOwnerRememberBuffer(ResourceOwner owner, Buffer buffer); -extern void ResourceOwnerForgetBuffer(ResourceOwner owner, Buffer buffer); - -/* support for local lock management */ -extern void ResourceOwnerRememberLock(ResourceOwner owner, LOCALLOCK *locallock); -extern void ResourceOwnerForgetLock(ResourceOwner owner, LOCALLOCK *locallock); - -/* support for catcache refcount management */ -extern void ResourceOwnerEnlargeCatCacheRefs(ResourceOwner owner); -extern void ResourceOwnerRememberCatCacheRef(ResourceOwner owner, - HeapTuple tuple); -extern void ResourceOwnerForgetCatCacheRef(ResourceOwner owner, - HeapTuple tuple); -extern void ResourceOwnerEnlargeCatCacheListRefs(ResourceOwner owner); -extern void ResourceOwnerRememberCatCacheListRef(ResourceOwner owner, - CatCList *list); -extern void ResourceOwnerForgetCatCacheListRef(ResourceOwner owner, - CatCList *list); - -/* support for relcache refcount management */ -extern void ResourceOwnerEnlargeRelationRefs(ResourceOwner owner); -extern void ResourceOwnerRememberRelationRef(ResourceOwner owner, - Relation rel); -extern void ResourceOwnerForgetRelationRef(ResourceOwner owner, - Relation rel); - -/* support for plancache refcount management */ -extern void ResourceOwnerEnlargePlanCacheRefs(ResourceOwner owner); -extern void ResourceOwnerRememberPlanCacheRef(ResourceOwner owner, - CachedPlan *plan); -extern void ResourceOwnerForgetPlanCacheRef(ResourceOwner owner, - CachedPlan *plan); - -/* support for tupledesc refcount management */ -extern void ResourceOwnerEnlargeTupleDescs(ResourceOwner owner); -extern void ResourceOwnerRememberTupleDesc(ResourceOwner owner, - TupleDesc tupdesc); -extern void ResourceOwnerForgetTupleDesc(ResourceOwner owner, - TupleDesc tupdesc); - -/* support for snapshot refcount management */ -extern void ResourceOwnerEnlargeSnapshots(ResourceOwner owner); -extern void ResourceOwnerRememberSnapshot(ResourceOwner owner, - Snapshot snapshot); -extern void ResourceOwnerForgetSnapshot(ResourceOwner owner, - Snapshot snapshot); - -/* support for temporary file management */ -extern void ResourceOwnerEnlargeFiles(ResourceOwner owner); -extern void ResourceOwnerRememberFile(ResourceOwner owner, - File file); -extern void ResourceOwnerForgetFile(ResourceOwner owner, - File file); - #endif /* RESOWNER_H */ diff --git a/src/include/utils/resowner_private.h b/src/include/utils/resowner_private.h new file mode 100644 index 0000000000..fc6e4640d4 --- /dev/null +++ b/src/include/utils/resowner_private.h @@ -0,0 +1,83 @@ +/*------------------------------------------------------------------------- + * + * resowner_private.h + * POSTGRES resource owner private definitions. + * + * See utils/resowner/README for more info. + * + * + * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * src/include/utils/resowner_private.h + * + *------------------------------------------------------------------------- + */ +#ifndef RESOWNER_PRIVATE_H +#define RESOWNER_PRIVATE_H + +#include "storage/fd.h" +#include "storage/lock.h" +#include "utils/catcache.h" +#include "utils/plancache.h" +#include "utils/resowner.h" +#include "utils/snapshot.h" + + +/* support for buffer refcount management */ +extern void ResourceOwnerEnlargeBuffers(ResourceOwner owner); +extern void ResourceOwnerRememberBuffer(ResourceOwner owner, Buffer buffer); +extern void ResourceOwnerForgetBuffer(ResourceOwner owner, Buffer buffer); + +/* support for local lock management */ +extern void ResourceOwnerRememberLock(ResourceOwner owner, LOCALLOCK *locallock); +extern void ResourceOwnerForgetLock(ResourceOwner owner, LOCALLOCK *locallock); + +/* support for catcache refcount management */ +extern void ResourceOwnerEnlargeCatCacheRefs(ResourceOwner owner); +extern void ResourceOwnerRememberCatCacheRef(ResourceOwner owner, + HeapTuple tuple); +extern void ResourceOwnerForgetCatCacheRef(ResourceOwner owner, + HeapTuple tuple); +extern void ResourceOwnerEnlargeCatCacheListRefs(ResourceOwner owner); +extern void ResourceOwnerRememberCatCacheListRef(ResourceOwner owner, + CatCList *list); +extern void ResourceOwnerForgetCatCacheListRef(ResourceOwner owner, + CatCList *list); + +/* support for relcache refcount management */ +extern void ResourceOwnerEnlargeRelationRefs(ResourceOwner owner); +extern void ResourceOwnerRememberRelationRef(ResourceOwner owner, + Relation rel); +extern void ResourceOwnerForgetRelationRef(ResourceOwner owner, + Relation rel); + +/* support for plancache refcount management */ +extern void ResourceOwnerEnlargePlanCacheRefs(ResourceOwner owner); +extern void ResourceOwnerRememberPlanCacheRef(ResourceOwner owner, + CachedPlan *plan); +extern void ResourceOwnerForgetPlanCacheRef(ResourceOwner owner, + CachedPlan *plan); + +/* support for tupledesc refcount management */ +extern void ResourceOwnerEnlargeTupleDescs(ResourceOwner owner); +extern void ResourceOwnerRememberTupleDesc(ResourceOwner owner, + TupleDesc tupdesc); +extern void ResourceOwnerForgetTupleDesc(ResourceOwner owner, + TupleDesc tupdesc); + +/* support for snapshot refcount management */ +extern void ResourceOwnerEnlargeSnapshots(ResourceOwner owner); +extern void ResourceOwnerRememberSnapshot(ResourceOwner owner, + Snapshot snapshot); +extern void ResourceOwnerForgetSnapshot(ResourceOwner owner, + Snapshot snapshot); + +/* support for temporary file management */ +extern void ResourceOwnerEnlargeFiles(ResourceOwner owner); +extern void ResourceOwnerRememberFile(ResourceOwner owner, + File file); +extern void ResourceOwnerForgetFile(ResourceOwner owner, + File file); + +#endif /* RESOWNER_PRIVATE_H */ diff --git a/src/include/utils/snapmgr.h b/src/include/utils/snapmgr.h index f195981771..6b2ef80d06 100644 --- a/src/include/utils/snapmgr.h +++ b/src/include/utils/snapmgr.h @@ -13,7 +13,9 @@ #ifndef SNAPMGR_H #define SNAPMGR_H +#include "fmgr.h" #include "utils/resowner.h" +#include "utils/snapshot.h" extern bool FirstSnapshotSet; -- GitLab