PostgreSQL Source Code
git master
|
#include "postgres.h"
#include "common/cryptohash.h"
#include "common/hashfn.h"
#include "common/hmac.h"
#include "jit/jit.h"
#include "storage/bufmgr.h"
#include "storage/ipc.h"
#include "storage/predicate.h"
#include "storage/proc.h"
#include "utils/memutils.h"
#include "utils/rel.h"
#include "utils/resowner_private.h"
#include "utils/snapmgr.h"
Go to the source code of this file.
Data Structures | |
struct | ResourceArray |
struct | ResourceOwnerData |
struct | ResourceReleaseCallbackItem |
Macros | |
#define | FileGetDatum(file) Int32GetDatum(file) |
#define | DatumGetFile(datum) ((File) DatumGetInt32(datum)) |
#define | BufferGetDatum(buffer) Int32GetDatum(buffer) |
#define | DatumGetBuffer(datum) ((Buffer) DatumGetInt32(datum)) |
#define | RESARRAY_INIT_SIZE 16 |
#define | RESARRAY_MAX_ARRAY 64 |
#define | RESARRAY_IS_ARRAY(resarr) ((resarr)->capacity <= RESARRAY_MAX_ARRAY) |
#define | RESARRAY_MAX_ITEMS(capacity) ((capacity) <= RESARRAY_MAX_ARRAY ? (capacity) : (capacity)/4 * 3) |
#define | MAX_RESOWNER_LOCKS 15 |
Typedefs | |
typedef struct ResourceArray | ResourceArray |
typedef struct ResourceOwnerData | ResourceOwnerData |
typedef struct ResourceReleaseCallbackItem | ResourceReleaseCallbackItem |
Variables | |
ResourceOwner | CurrentResourceOwner = NULL |
ResourceOwner | CurTransactionResourceOwner = NULL |
ResourceOwner | TopTransactionResourceOwner = NULL |
ResourceOwner | AuxProcessResourceOwner = NULL |
static ResourceReleaseCallbackItem * | ResourceRelease_callbacks = NULL |
#define BufferGetDatum | ( | buffer | ) | Int32GetDatum(buffer) |
Definition at line 46 of file resowner.c.
#define DatumGetBuffer | ( | datum | ) | ((Buffer) DatumGetInt32(datum)) |
Definition at line 47 of file resowner.c.
#define DatumGetFile | ( | datum | ) | ((File) DatumGetInt32(datum)) |
Definition at line 45 of file resowner.c.
#define FileGetDatum | ( | file | ) | Int32GetDatum(file) |
Definition at line 44 of file resowner.c.
#define MAX_RESOWNER_LOCKS 15 |
Definition at line 110 of file resowner.c.
#define RESARRAY_INIT_SIZE 16 |
Definition at line 79 of file resowner.c.
#define RESARRAY_IS_ARRAY | ( | resarr | ) | ((resarr)->capacity <= RESARRAY_MAX_ARRAY) |
Definition at line 85 of file resowner.c.
#define RESARRAY_MAX_ARRAY 64 |
Definition at line 84 of file resowner.c.
#define RESARRAY_MAX_ITEMS | ( | capacity | ) | ((capacity) <= RESARRAY_MAX_ARRAY ? (capacity) : (capacity)/4 * 3) |
Definition at line 91 of file resowner.c.
typedef struct ResourceArray ResourceArray |
typedef struct ResourceOwnerData ResourceOwnerData |
typedef struct ResourceReleaseCallbackItem ResourceReleaseCallbackItem |
void CreateAuxProcessResourceOwner | ( | void | ) |
Definition at line 914 of file resowner.c.
References Assert(), AuxProcessResourceOwner, CurrentResourceOwner, on_shmem_exit(), ReleaseAuxProcessResourcesCallback(), and ResourceOwnerCreate().
Referenced by AuxiliaryProcessMain(), and InitPostgres().
|
static |
Definition at line 1506 of file resowner.c.
References DatumGetPointer(), elog(), and WARNING.
Referenced by ResourceOwnerReleaseInternal().
|
static |
Definition at line 1426 of file resowner.c.
References dsm_segment_handle(), elog(), and WARNING.
Referenced by ResourceOwnerReleaseInternal().
|
static |
Definition at line 1381 of file resowner.c.
References elog(), and WARNING.
Referenced by ResourceOwnerReleaseInternal().
|
static |
Definition at line 1551 of file resowner.c.
References DatumGetPointer(), elog(), and WARNING.
Referenced by ResourceOwnerReleaseInternal().
|
static |
Definition at line 1245 of file resowner.c.
References elog(), plan, and WARNING.
Referenced by ResourceOwnerReleaseInternal().
|
static |
Definition at line 1200 of file resowner.c.
References elog(), RelationGetRelationName, and WARNING.
Referenced by ResourceOwnerReleaseInternal().
|
static |
Definition at line 1335 of file resowner.c.
References elog(), and WARNING.
Referenced by ResourceOwnerReleaseInternal().
|
static |
Definition at line 1289 of file resowner.c.
References elog(), TupleDescData::tdtypeid, TupleDescData::tdtypmod, and WARNING.
Referenced by ResourceOwnerReleaseInternal().
void RegisterResourceReleaseCallback | ( | ResourceReleaseCallback | callback, |
void * | arg | ||
) |
Definition at line 876 of file resowner.c.
References ResourceReleaseCallbackItem::arg, arg, ResourceReleaseCallbackItem::callback, callback(), MemoryContextAlloc(), ResourceReleaseCallbackItem::next, ResourceRelease_callbacks, and TopMemoryContext.
Referenced by px_find_cipher(), and px_find_digest().
void ReleaseAuxProcessResources | ( | bool | isCommit | ) |
Definition at line 934 of file resowner.c.
References AuxProcessResourceOwner, RESOURCE_RELEASE_AFTER_LOCKS, RESOURCE_RELEASE_BEFORE_LOCKS, RESOURCE_RELEASE_LOCKS, and ResourceOwnerRelease().
Referenced by AutoVacLauncherMain(), BackgroundWriterMain(), CheckpointerMain(), InitPostgres(), ReleaseAuxProcessResourcesCallback(), and WalWriterMain().
|
static |
Definition at line 956 of file resowner.c.
References ReleaseAuxProcessResources().
Referenced by CreateAuxProcessResourceOwner().
|
static |
Definition at line 270 of file resowner.c.
References Assert(), ResourceArray::capacity, DatumGetUInt32(), hash_any(), idx(), ResourceArray::invalidval, ResourceArray::itemsarr, ResourceArray::lastidx, ResourceArray::maxitems, ResourceArray::nitems, RESARRAY_IS_ARRAY, and value.
Referenced by ResourceArrayEnlarge(), ResourceOwnerRememberBuffer(), ResourceOwnerRememberBufferIO(), ResourceOwnerRememberCatCacheListRef(), ResourceOwnerRememberCatCacheRef(), ResourceOwnerRememberCryptoHash(), ResourceOwnerRememberDSM(), ResourceOwnerRememberFile(), ResourceOwnerRememberHMAC(), ResourceOwnerRememberJIT(), ResourceOwnerRememberPlanCacheRef(), ResourceOwnerRememberRelationRef(), ResourceOwnerRememberSnapshot(), and ResourceOwnerRememberTupleDesc().
|
static |
Definition at line 215 of file resowner.c.
References Assert(), ResourceArray::capacity, i, ResourceArray::invalidval, ResourceArray::itemsarr, ResourceArray::maxitems, MemoryContextAlloc(), ResourceArray::nitems, pfree(), RESARRAY_INIT_SIZE, RESARRAY_MAX_ITEMS, ResourceArrayAdd(), and TopMemoryContext.
Referenced by ResourceOwnerEnlargeBufferIOs(), ResourceOwnerEnlargeBuffers(), ResourceOwnerEnlargeCatCacheListRefs(), ResourceOwnerEnlargeCatCacheRefs(), ResourceOwnerEnlargeCryptoHash(), ResourceOwnerEnlargeDSMs(), ResourceOwnerEnlargeFiles(), ResourceOwnerEnlargeHMAC(), ResourceOwnerEnlargeJIT(), ResourceOwnerEnlargePlanCacheRefs(), ResourceOwnerEnlargeRelationRefs(), ResourceOwnerEnlargeSnapshots(), and ResourceOwnerEnlargeTupleDescs().
|
static |
Definition at line 409 of file resowner.c.
References ResourceArray::itemsarr, and pfree().
Referenced by ResourceOwnerDelete().
|
static |
Definition at line 377 of file resowner.c.
References ResourceArray::capacity, ResourceArray::invalidval, ResourceArray::itemsarr, ResourceArray::lastidx, ResourceArray::nitems, RESARRAY_IS_ARRAY, and value.
Referenced by ResourceOwnerReleaseAllPlanCacheRefs(), and ResourceOwnerReleaseInternal().
|
static |
Definition at line 196 of file resowner.c.
References Assert(), ResourceArray::capacity, ResourceArray::invalidval, ResourceArray::itemsarr, ResourceArray::maxitems, and ResourceArray::nitems.
Referenced by ResourceOwnerCreate().
|
static |
Definition at line 308 of file resowner.c.
References Assert(), ResourceArray::capacity, DatumGetUInt32(), hash_any(), i, idx(), ResourceArray::invalidval, ResourceArray::itemsarr, ResourceArray::lastidx, ResourceArray::nitems, nitems, RESARRAY_IS_ARRAY, and value.
Referenced by ResourceOwnerForgetBuffer(), ResourceOwnerForgetBufferIO(), ResourceOwnerForgetCatCacheListRef(), ResourceOwnerForgetCatCacheRef(), ResourceOwnerForgetCryptoHash(), ResourceOwnerForgetDSM(), ResourceOwnerForgetFile(), ResourceOwnerForgetHMAC(), ResourceOwnerForgetJIT(), ResourceOwnerForgetPlanCacheRef(), ResourceOwnerForgetRelationRef(), ResourceOwnerForgetSnapshot(), and ResourceOwnerForgetTupleDesc().
ResourceOwner ResourceOwnerCreate | ( | ResourceOwner | parent, |
const char * | name | ||
) |
Definition at line 429 of file resowner.c.
References ResourceOwnerData::bufferarr, BufferGetDatum, ResourceOwnerData::bufferioarr, ResourceOwnerData::catlistrefarr, ResourceOwnerData::catrefarr, ResourceOwnerData::cryptohasharr, ResourceOwnerData::dsmarr, ResourceOwnerData::filearr, FileGetDatum, ResourceOwnerData::firstchild, ResourceOwnerData::hmacarr, InvalidBuffer, ResourceOwnerData::jitarr, MemoryContextAllocZero(), name, ResourceOwnerData::name, ResourceOwnerData::nextchild, ResourceOwnerData::parent, ResourceOwnerData::planrefarr, PointerGetDatum(), ResourceOwnerData::relrefarr, ResourceArrayInit(), ResourceOwnerData::snapshotarr, TopMemoryContext, and ResourceOwnerData::tupdescarr.
Referenced by AtStart_ResourceOwner(), AtSubStart_ResourceOwner(), CreateAuxProcessResourceOwner(), CreatePortal(), perform_base_backup(), plpgsql_call_handler(), plpgsql_create_econtext(), and plpgsql_inline_handler().
void ResourceOwnerDelete | ( | ResourceOwner | owner | ) |
Definition at line 762 of file resowner.c.
References Assert(), ResourceOwnerData::bufferarr, ResourceOwnerData::bufferioarr, ResourceOwnerData::catlistrefarr, ResourceOwnerData::catrefarr, ResourceOwnerData::cryptohasharr, CurrentResourceOwner, ResourceOwnerData::dsmarr, ResourceOwnerData::filearr, ResourceOwnerData::firstchild, ResourceOwnerData::hmacarr, ResourceOwnerData::jitarr, MAX_RESOWNER_LOCKS, ResourceArray::nitems, ResourceOwnerData::nlocks, pfree(), ResourceOwnerData::planrefarr, ResourceOwnerData::relrefarr, ResourceArrayFree(), ResourceOwnerNewParent(), ResourceOwnerData::snapshotarr, and ResourceOwnerData::tupdescarr.
Referenced by CleanupSubTransaction(), CleanupTransaction(), CommitSubTransaction(), CommitTransaction(), plpgsql_call_handler(), plpgsql_inline_handler(), PortalDrop(), PrepareTransaction(), and WalSndResourceCleanup().
void ResourceOwnerEnlargeBufferIOs | ( | ResourceOwner | owner | ) |
Definition at line 1010 of file resowner.c.
References Assert(), ResourceOwnerData::bufferioarr, and ResourceArrayEnlarge().
Referenced by StartBufferIO().
void ResourceOwnerEnlargeBuffers | ( | ResourceOwner | owner | ) |
Definition at line 972 of file resowner.c.
References Assert(), ResourceOwnerData::bufferarr, and ResourceArrayEnlarge().
Referenced by BgBufferSync(), BufferSync(), ExtendBufferedRelShared(), FlushDatabaseBuffers(), FlushRelationBuffers(), FlushRelationsAllBuffers(), GetLocalVictimBuffer(), GetVictimBuffer(), IncrBufferRefCount(), ReadBuffer_common(), and ReadRecentBuffer().
void ResourceOwnerEnlargeCatCacheListRefs | ( | ResourceOwner | owner | ) |
Definition at line 1134 of file resowner.c.
References ResourceOwnerData::catlistrefarr, and ResourceArrayEnlarge().
Referenced by SearchCatCacheList().
void ResourceOwnerEnlargeCatCacheRefs | ( | ResourceOwner | owner | ) |
Definition at line 1099 of file resowner.c.
References ResourceOwnerData::catrefarr, and ResourceArrayEnlarge().
Referenced by SearchCatCacheInternal(), and SearchCatCacheMiss().
void ResourceOwnerEnlargeCryptoHash | ( | ResourceOwner | owner | ) |
Definition at line 1475 of file resowner.c.
References ResourceOwnerData::cryptohasharr, and ResourceArrayEnlarge().
Referenced by pg_cryptohash_create().
void ResourceOwnerEnlargeDSMs | ( | ResourceOwner | owner | ) |
Definition at line 1395 of file resowner.c.
References ResourceOwnerData::dsmarr, and ResourceArrayEnlarge().
Referenced by dsm_create_descriptor(), and dsm_unpin_mapping().
void ResourceOwnerEnlargeFiles | ( | ResourceOwner | owner | ) |
Definition at line 1350 of file resowner.c.
References ResourceOwnerData::filearr, and ResourceArrayEnlarge().
Referenced by OpenTemporaryFile(), PathNameCreateTemporaryFile(), and PathNameOpenTemporaryFile().
void ResourceOwnerEnlargeHMAC | ( | ResourceOwner | owner | ) |
Definition at line 1520 of file resowner.c.
References ResourceOwnerData::hmacarr, and ResourceArrayEnlarge().
Referenced by pg_hmac_create().
void ResourceOwnerEnlargeJIT | ( | ResourceOwner | owner | ) |
Definition at line 1440 of file resowner.c.
References ResourceOwnerData::jitarr, and ResourceArrayEnlarge().
Referenced by llvm_create_context().
void ResourceOwnerEnlargePlanCacheRefs | ( | ResourceOwner | owner | ) |
Definition at line 1214 of file resowner.c.
References ResourceOwnerData::planrefarr, and ResourceArrayEnlarge().
Referenced by CachedPlanAllowsSimpleValidityCheck(), CachedPlanIsSimplyValid(), and GetCachedPlan().
void ResourceOwnerEnlargeRelationRefs | ( | ResourceOwner | owner | ) |
Definition at line 1169 of file resowner.c.
References ResourceOwnerData::relrefarr, and ResourceArrayEnlarge().
Referenced by RelationIncrementReferenceCount().
void ResourceOwnerEnlargeSnapshots | ( | ResourceOwner | owner | ) |
Definition at line 1304 of file resowner.c.
References ResourceArrayEnlarge(), and ResourceOwnerData::snapshotarr.
Referenced by RegisterSnapshotOnOwner().
void ResourceOwnerEnlargeTupleDescs | ( | ResourceOwner | owner | ) |
Definition at line 1258 of file resowner.c.
References ResourceArrayEnlarge(), and ResourceOwnerData::tupdescarr.
Referenced by IncrTupleDescRefCount().
void ResourceOwnerForgetBuffer | ( | ResourceOwner | owner, |
Buffer | buffer | ||
) |
Definition at line 994 of file resowner.c.
References ResourceOwnerData::bufferarr, BufferGetDatum, elog(), ERROR, ResourceOwnerData::name, and ResourceArrayRemove().
Referenced by UnpinBuffer(), and UnpinLocalBuffer().
void ResourceOwnerForgetBufferIO | ( | ResourceOwner | owner, |
Buffer | buffer | ||
) |
Definition at line 1032 of file resowner.c.
References BufferGetDatum, ResourceOwnerData::bufferioarr, elog(), ResourceOwnerData::name, PANIC, and ResourceArrayRemove().
Referenced by TerminateBufferIO().
void ResourceOwnerForgetCatCacheListRef | ( | ResourceOwner | owner, |
CatCList * | list | ||
) |
Definition at line 1154 of file resowner.c.
References ResourceOwnerData::catlistrefarr, elog(), ERROR, sort-test::list, ResourceOwnerData::name, PointerGetDatum(), and ResourceArrayRemove().
Referenced by ReleaseCatCacheList().
void ResourceOwnerForgetCatCacheRef | ( | ResourceOwner | owner, |
HeapTuple | tuple | ||
) |
Definition at line 1119 of file resowner.c.
References ResourceOwnerData::catrefarr, elog(), ERROR, ResourceOwnerData::name, PointerGetDatum(), and ResourceArrayRemove().
Referenced by ReleaseCatCache().
void ResourceOwnerForgetCryptoHash | ( | ResourceOwner | owner, |
Datum | handle | ||
) |
Definition at line 1495 of file resowner.c.
References ResourceOwnerData::cryptohasharr, DatumGetPointer(), elog(), ERROR, ResourceOwnerData::name, and ResourceArrayRemove().
Referenced by pg_cryptohash_free().
void ResourceOwnerForgetDSM | ( | ResourceOwner | owner, |
dsm_segment * | seg | ||
) |
Definition at line 1415 of file resowner.c.
References dsm_segment_handle(), ResourceOwnerData::dsmarr, elog(), ERROR, ResourceOwnerData::name, PointerGetDatum(), and ResourceArrayRemove().
Referenced by dsm_create(), dsm_detach(), and dsm_pin_mapping().
void ResourceOwnerForgetFile | ( | ResourceOwner | owner, |
File | file | ||
) |
Definition at line 1370 of file resowner.c.
References elog(), ERROR, ResourceOwnerData::filearr, FileGetDatum, ResourceOwnerData::name, and ResourceArrayRemove().
Referenced by FileClose().
void ResourceOwnerForgetHMAC | ( | ResourceOwner | owner, |
Datum | handle | ||
) |
Definition at line 1540 of file resowner.c.
References DatumGetPointer(), elog(), ERROR, ResourceOwnerData::hmacarr, ResourceOwnerData::name, and ResourceArrayRemove().
Referenced by pg_hmac_free().
void ResourceOwnerForgetJIT | ( | ResourceOwner | owner, |
Datum | handle | ||
) |
Definition at line 1460 of file resowner.c.
References DatumGetPointer(), elog(), ERROR, ResourceOwnerData::jitarr, ResourceOwnerData::name, and ResourceArrayRemove().
Referenced by jit_release_context().
void ResourceOwnerForgetLock | ( | ResourceOwner | owner, |
LOCALLOCK * | locallock | ||
) |
Definition at line 1070 of file resowner.c.
References Assert(), elog(), ERROR, i, ResourceOwnerData::locks, MAX_RESOWNER_LOCKS, ResourceOwnerData::name, and ResourceOwnerData::nlocks.
Referenced by LockReassignOwner(), LockRelease(), LockReleaseAll(), ReleaseLockIfHeld(), and RemoveLocalLock().
void ResourceOwnerForgetPlanCacheRef | ( | ResourceOwner | owner, |
CachedPlan * | plan | ||
) |
Definition at line 1234 of file resowner.c.
References elog(), ERROR, ResourceOwnerData::name, plan, ResourceOwnerData::planrefarr, PointerGetDatum(), and ResourceArrayRemove().
Referenced by ReleaseCachedPlan().
void ResourceOwnerForgetRelationRef | ( | ResourceOwner | owner, |
Relation | rel | ||
) |
Definition at line 1189 of file resowner.c.
References elog(), ERROR, ResourceOwnerData::name, PointerGetDatum(), RelationGetRelationName, ResourceOwnerData::relrefarr, and ResourceArrayRemove().
Referenced by RelationDecrementReferenceCount().
void ResourceOwnerForgetSnapshot | ( | ResourceOwner | owner, |
Snapshot | snapshot | ||
) |
Definition at line 1324 of file resowner.c.
References elog(), ERROR, ResourceOwnerData::name, PointerGetDatum(), ResourceArrayRemove(), and ResourceOwnerData::snapshotarr.
Referenced by UnregisterSnapshotFromOwner().
void ResourceOwnerForgetTupleDesc | ( | ResourceOwner | owner, |
TupleDesc | tupdesc | ||
) |
Definition at line 1278 of file resowner.c.
References elog(), ERROR, ResourceOwnerData::name, PointerGetDatum(), ResourceArrayRemove(), and ResourceOwnerData::tupdescarr.
Referenced by DecrTupleDescRefCount().
ResourceOwner ResourceOwnerGetParent | ( | ResourceOwner | owner | ) |
Definition at line 819 of file resowner.c.
References ResourceOwnerData::parent.
Referenced by LockReassignCurrentOwner().
void ResourceOwnerNewParent | ( | ResourceOwner | owner, |
ResourceOwner | newparent | ||
) |
Definition at line 828 of file resowner.c.
References Assert(), ResourceOwnerData::firstchild, ResourceOwnerData::nextchild, and ResourceOwnerData::parent.
Referenced by AtSubAbort_Portals(), AtSubCommit_Portals(), and ResourceOwnerDelete().
void ResourceOwnerRelease | ( | ResourceOwner | owner, |
ResourceReleasePhase | phase, | ||
bool | isCommit, | ||
bool | isTopLevel | ||
) |
Definition at line 488 of file resowner.c.
References ResourceOwnerReleaseInternal().
Referenced by AbortSubTransaction(), AbortTransaction(), CommitSubTransaction(), CommitTransaction(), PortalDrop(), PrepareTransaction(), ReleaseAuxProcessResources(), and WalSndResourceCleanup().
void ResourceOwnerReleaseAllPlanCacheRefs | ( | ResourceOwner | owner | ) |
Definition at line 743 of file resowner.c.
References DatumGetPointer(), ResourceOwnerData::planrefarr, ReleaseCachedPlan(), res, and ResourceArrayGetAny().
Referenced by plpgsql_call_handler(), plpgsql_inline_handler(), and plpgsql_xact_cb().
|
static |
Definition at line 498 of file resowner.c.
References AbortBufferIO(), ResourceReleaseCallbackItem::arg, Assert(), ResourceOwnerData::bufferarr, ResourceOwnerData::bufferioarr, ResourceReleaseCallbackItem::callback, ResourceOwnerData::catlistrefarr, ResourceOwnerData::catrefarr, ResourceOwnerData::cryptohasharr, CurrentResourceOwner, DatumGetBuffer, DatumGetFile, DatumGetPointer(), DecrTupleDescRefCount(), dsm_detach(), ResourceOwnerData::dsmarr, elog(), ResourceOwnerData::filearr, FileClose(), ResourceOwnerData::firstchild, ResourceOwnerData::hmacarr, jit_release_context(), ResourceOwnerData::jitarr, LockReassignCurrentOwner(), LockReleaseCurrentOwner(), ResourceOwnerData::locks, MAX_RESOWNER_LOCKS, next, ResourceReleaseCallbackItem::next, ResourceOwnerData::nextchild, ResourceOwnerData::nlocks, PANIC, ResourceOwnerData::parent, pg_cryptohash_free(), pg_hmac_free(), ResourceOwnerData::planrefarr, PrintBufferLeakWarning(), PrintCatCacheLeakWarning(), PrintCatCacheListLeakWarning(), PrintCryptoHashLeakWarning(), PrintDSMLeakWarning(), PrintFileLeakWarning(), PrintHMACLeakWarning(), PrintPlanCacheLeakWarning(), PrintRelCacheLeakWarning(), PrintSnapshotLeakWarning(), PrintTupleDescLeakWarning(), ProcReleaseLocks(), RelationClose(), ReleaseBuffer(), ReleaseCachedPlan(), ReleaseCatCache(), ReleaseCatCacheList(), ReleasePredicateLocks(), ResourceOwnerData::relrefarr, res, RESOURCE_RELEASE_AFTER_LOCKS, RESOURCE_RELEASE_BEFORE_LOCKS, RESOURCE_RELEASE_LOCKS, ResourceArrayGetAny(), ResourceRelease_callbacks, ResourceOwnerData::snapshotarr, TopTransactionResourceOwner, ResourceOwnerData::tupdescarr, and UnregisterSnapshot().
Referenced by ResourceOwnerRelease().
void ResourceOwnerRememberBuffer | ( | ResourceOwner | owner, |
Buffer | buffer | ||
) |
Definition at line 985 of file resowner.c.
References ResourceOwnerData::bufferarr, BufferGetDatum, and ResourceArrayAdd().
Referenced by IncrBufferRefCount(), PinBuffer(), PinBuffer_Locked(), and PinLocalBuffer().
void ResourceOwnerRememberBufferIO | ( | ResourceOwner | owner, |
Buffer | buffer | ||
) |
Definition at line 1023 of file resowner.c.
References BufferGetDatum, ResourceOwnerData::bufferioarr, and ResourceArrayAdd().
Referenced by StartBufferIO().
void ResourceOwnerRememberCatCacheListRef | ( | ResourceOwner | owner, |
CatCList * | list | ||
) |
Definition at line 1145 of file resowner.c.
References ResourceOwnerData::catlistrefarr, sort-test::list, PointerGetDatum(), and ResourceArrayAdd().
Referenced by SearchCatCacheList().
void ResourceOwnerRememberCatCacheRef | ( | ResourceOwner | owner, |
HeapTuple | tuple | ||
) |
Definition at line 1110 of file resowner.c.
References ResourceOwnerData::catrefarr, PointerGetDatum(), and ResourceArrayAdd().
Referenced by SearchCatCacheInternal(), and SearchCatCacheMiss().
void ResourceOwnerRememberCryptoHash | ( | ResourceOwner | owner, |
Datum | handle | ||
) |
Definition at line 1486 of file resowner.c.
References ResourceOwnerData::cryptohasharr, and ResourceArrayAdd().
Referenced by pg_cryptohash_create().
void ResourceOwnerRememberDSM | ( | ResourceOwner | owner, |
dsm_segment * | seg | ||
) |
Definition at line 1406 of file resowner.c.
References ResourceOwnerData::dsmarr, PointerGetDatum(), and ResourceArrayAdd().
Referenced by dsm_create_descriptor(), and dsm_unpin_mapping().
void ResourceOwnerRememberFile | ( | ResourceOwner | owner, |
File | file | ||
) |
Definition at line 1361 of file resowner.c.
References ResourceOwnerData::filearr, FileGetDatum, and ResourceArrayAdd().
Referenced by RegisterTemporaryFile().
void ResourceOwnerRememberHMAC | ( | ResourceOwner | owner, |
Datum | handle | ||
) |
Definition at line 1531 of file resowner.c.
References ResourceOwnerData::hmacarr, and ResourceArrayAdd().
Referenced by pg_hmac_create().
void ResourceOwnerRememberJIT | ( | ResourceOwner | owner, |
Datum | handle | ||
) |
Definition at line 1451 of file resowner.c.
References ResourceOwnerData::jitarr, and ResourceArrayAdd().
Referenced by llvm_create_context().
void ResourceOwnerRememberLock | ( | ResourceOwner | owner, |
LOCALLOCK * | locallock | ||
) |
Definition at line 1050 of file resowner.c.
References Assert(), ResourceOwnerData::locks, MAX_RESOWNER_LOCKS, and ResourceOwnerData::nlocks.
Referenced by GrantLockLocal(), and LockReassignOwner().
void ResourceOwnerRememberPlanCacheRef | ( | ResourceOwner | owner, |
CachedPlan * | plan | ||
) |
Definition at line 1225 of file resowner.c.
References plan, ResourceOwnerData::planrefarr, PointerGetDatum(), and ResourceArrayAdd().
Referenced by CachedPlanAllowsSimpleValidityCheck(), CachedPlanIsSimplyValid(), and GetCachedPlan().
void ResourceOwnerRememberRelationRef | ( | ResourceOwner | owner, |
Relation | rel | ||
) |
Definition at line 1180 of file resowner.c.
References PointerGetDatum(), ResourceOwnerData::relrefarr, and ResourceArrayAdd().
Referenced by RelationIncrementReferenceCount().
void ResourceOwnerRememberSnapshot | ( | ResourceOwner | owner, |
Snapshot | snapshot | ||
) |
Definition at line 1315 of file resowner.c.
References PointerGetDatum(), ResourceArrayAdd(), and ResourceOwnerData::snapshotarr.
Referenced by RegisterSnapshotOnOwner().
void ResourceOwnerRememberTupleDesc | ( | ResourceOwner | owner, |
TupleDesc | tupdesc | ||
) |
Definition at line 1269 of file resowner.c.
References PointerGetDatum(), ResourceArrayAdd(), and ResourceOwnerData::tupdescarr.
Referenced by IncrTupleDescRefCount().
void UnregisterResourceReleaseCallback | ( | ResourceReleaseCallback | callback, |
void * | arg | ||
) |
Definition at line 890 of file resowner.c.
References ResourceReleaseCallbackItem::arg, arg, ResourceReleaseCallbackItem::callback, callback(), ResourceReleaseCallbackItem::next, pfree(), and ResourceRelease_callbacks.
ResourceOwner AuxProcessResourceOwner = NULL |
Definition at line 150 of file resowner.c.
Referenced by AutoVacLauncherMain(), CreateAuxProcessResourceOwner(), ReleaseAuxProcessResources(), ShutdownXLOG(), and StartupXLOG().
ResourceOwner CurrentResourceOwner = NULL |
Definition at line 147 of file resowner.c.
Referenced by _SPI_execute_plan(), apply_spooled_messages(), AssignTransactionId(), AtAbort_ResourceOwner(), AtStart_ResourceOwner(), AtSubAbort_ResourceOwner(), AtSubStart_ResourceOwner(), BgBufferSync(), BufferSync(), cipher_free_callback(), CleanupSubTransaction(), CleanupTransaction(), close_lo_relation(), CommitSubTransaction(), CommitTransaction(), CreateAuxProcessResourceOwner(), DecrTupleDescRefCount(), digest_free_callback(), dsm_create_descriptor(), dsm_unpin_mapping(), exec_eval_simple_expr(), exec_init_tuple_store(), exec_simple_check_plan(), exec_stmt_block(), ExplainExecuteQuery(), ExtendBufferedRelShared(), extendBufFile(), FlushDatabaseBuffers(), FlushRelationBuffers(), FlushRelationsAllBuffers(), GetCurrentFDWTuplestore(), GetLocalVictimBuffer(), GetVictimBuffer(), IncrBufferRefCount(), IncrTupleDescRefCount(), InitPostgres(), llvm_create_context(), lock_and_open_sequence(), LockAcquireExtended(), LockReassignCurrentOwner(), LockReassignOwner(), LockRelease(), makeBufFileCommon(), MakeTransitionCaptureState(), open_lo_relation(), OpenTemporaryFile(), PathNameCreateTemporaryFile(), PathNameOpenTemporaryFile(), perform_base_backup(), PersistHoldablePortal(), pg_cryptohash_create(), pg_hmac_create(), pg_logical_replication_slot_advance(), pg_logical_slot_get_changes_guts(), PinBuffer(), PinBuffer_Locked(), PinLocalBuffer(), plperl_spi_exec(), plperl_spi_exec_prepared(), plperl_spi_fetchrow(), plperl_spi_prepare(), plperl_spi_query(), plperl_spi_query_prepared(), plpgsql_estate_setup(), pltcl_func_handler(), pltcl_init_tuple_store(), pltcl_returnnext(), pltcl_SPI_execute(), pltcl_SPI_execute_plan(), pltcl_SPI_prepare(), pltcl_subtrans_abort(), pltcl_subtrans_commit(), pltcl_subtransaction(), PLy_abort_open_subtransactions(), PLy_cursor_fetch(), PLy_cursor_iternext(), PLy_cursor_plan(), PLy_cursor_query(), PLy_spi_execute_plan(), PLy_spi_execute_query(), PLy_spi_prepare(), PLy_spi_subtransaction_abort(), PLy_spi_subtransaction_commit(), PLy_subtransaction_enter(), PLy_subtransaction_exit(), PopTransaction(), PortalCleanup(), PortalRun(), PortalRunFetch(), PortalStart(), PrepareTransaction(), px_find_cipher(), px_find_digest(), ReadBuffer_common(), ReadRecentBuffer(), RegisterSnapshot(), RegisterTemporaryFile(), RelationDecrementReferenceCount(), RelationIncrementReferenceCount(), ReleaseCatCache(), ReleaseCatCacheList(), ReleaseLockIfHeld(), ResourceOwnerDelete(), ResourceOwnerReleaseInternal(), SearchCatCacheInternal(), SearchCatCacheList(), SearchCatCacheMiss(), ShutdownXLOG(), SnapBuildClearExportedSnapshot(), SnapBuildExportSnapshot(), SPI_plan_get_cached_plan(), StartBufferIO(), StartupXLOG(), TerminateBufferIO(), tuplestore_begin_common(), tuplestore_puttuple_common(), UnpinBuffer(), UnpinLocalBuffer(), UnregisterSnapshot(), and WalSndResourceCleanup().
ResourceOwner CurTransactionResourceOwner = NULL |
Definition at line 148 of file resowner.c.
Referenced by AtStart_ResourceOwner(), AtSubStart_ResourceOwner(), CleanupSubTransaction(), CleanupTransaction(), CommitSubTransaction(), CommitTransaction(), CreatePortal(), GetCurrentFDWTuplestore(), MakeTransitionCaptureState(), PopTransaction(), and PrepareTransaction().
|
static |
Definition at line 162 of file resowner.c.
Referenced by RegisterResourceReleaseCallback(), ResourceOwnerReleaseInternal(), and UnregisterResourceReleaseCallback().
ResourceOwner TopTransactionResourceOwner = NULL |
Definition at line 149 of file resowner.c.
Referenced by AbortTransaction(), apply_spooled_messages(), AtAbort_ResourceOwner(), AtStart_ResourceOwner(), be_lo_open(), CleanupTransaction(), close_lo_relation(), closeLOfd(), CommitTransaction(), lock_and_open_sequence(), open_lo_relation(), plpgsql_create_econtext(), PortalRun(), PrepareTransaction(), and ResourceOwnerReleaseInternal().