diff options
| author | Tom Lane | 2015-08-27 16:22:10 +0000 |
|---|---|---|
| committer | Tom Lane | 2015-08-27 16:22:10 +0000 |
| commit | 0e933fdf9463857d4788e2e638affdde865855ce (patch) | |
| tree | 581563b7ee47aa1206f82e3914b757da5e702500 /src/include | |
| parent | 8cffc4f5bdfbd41e27680fca27d82ae939cdeda8 (diff) | |
Add a small cache of locks owned by a resource owner in ResourceOwner.
Back-patch 9.3-era commit eeb6f37d89fc60c6449ca12ef9e91491069369cb, to
improve the older branches' ability to cope with pg_dump dumping a large
number of tables.
I back-patched into 9.2 and 9.1, but not 9.0 as it would have required a
significant amount of refactoring, thus negating the argument that this
is by-now-well-tested code.
Jeff Janes, reviewed by Amit Kapila and Heikki Linnakangas.
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/storage/lock.h | 4 | ||||
| -rw-r--r-- | src/include/utils/resowner.h | 5 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/include/storage/lock.h b/src/include/storage/lock.h index 78c3074ad27..d1ad32ad258 100644 --- a/src/include/storage/lock.h +++ b/src/include/storage/lock.h @@ -506,8 +506,8 @@ extern bool LockRelease(const LOCKTAG *locktag, LOCKMODE lockmode, bool sessionLock); extern void LockReleaseAll(LOCKMETHODID lockmethodid, bool allLocks); extern void LockReleaseSession(LOCKMETHODID lockmethodid); -extern void LockReleaseCurrentOwner(void); -extern void LockReassignCurrentOwner(void); +extern void LockReleaseCurrentOwner(LOCALLOCK **locallocks, int nlocks); +extern void LockReassignCurrentOwner(LOCALLOCK **locallocks, int nlocks); extern bool LockHasWaiters(const LOCKTAG *locktag, LOCKMODE lockmode, bool sessionLock); extern VirtualTransactionId *GetLockConflicts(const LOCKTAG *locktag, diff --git a/src/include/utils/resowner.h b/src/include/utils/resowner.h index 47eb0ac05e5..336d250fbbe 100644 --- a/src/include/utils/resowner.h +++ b/src/include/utils/resowner.h @@ -20,6 +20,7 @@ #define RESOWNER_H #include "storage/fd.h" +#include "storage/lock.h" #include "utils/catcache.h" #include "utils/plancache.h" #include "utils/snapshot.h" @@ -89,6 +90,10 @@ 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, |
