PostgreSQL Source Code  git master
resowner_private.h File Reference
#include "storage/dsm.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"
Include dependency graph for resowner_private.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void ResourceOwnerEnlargeBuffers (ResourceOwner owner)
 
void ResourceOwnerRememberBuffer (ResourceOwner owner, Buffer buffer)
 
void ResourceOwnerForgetBuffer (ResourceOwner owner, Buffer buffer)
 
void ResourceOwnerRememberLock (ResourceOwner owner, LOCALLOCK *locallock)
 
void ResourceOwnerForgetLock (ResourceOwner owner, LOCALLOCK *locallock)
 
void ResourceOwnerEnlargeCatCacheRefs (ResourceOwner owner)
 
void ResourceOwnerRememberCatCacheRef (ResourceOwner owner, HeapTuple tuple)
 
void ResourceOwnerForgetCatCacheRef (ResourceOwner owner, HeapTuple tuple)
 
void ResourceOwnerEnlargeCatCacheListRefs (ResourceOwner owner)
 
void ResourceOwnerRememberCatCacheListRef (ResourceOwner owner, CatCList *list)
 
void ResourceOwnerForgetCatCacheListRef (ResourceOwner owner, CatCList *list)
 
void ResourceOwnerEnlargeRelationRefs (ResourceOwner owner)
 
void ResourceOwnerRememberRelationRef (ResourceOwner owner, Relation rel)
 
void ResourceOwnerForgetRelationRef (ResourceOwner owner, Relation rel)
 
void ResourceOwnerEnlargePlanCacheRefs (ResourceOwner owner)
 
void ResourceOwnerRememberPlanCacheRef (ResourceOwner owner, CachedPlan *plan)
 
void ResourceOwnerForgetPlanCacheRef (ResourceOwner owner, CachedPlan *plan)
 
void ResourceOwnerEnlargeTupleDescs (ResourceOwner owner)
 
void ResourceOwnerRememberTupleDesc (ResourceOwner owner, TupleDesc tupdesc)
 
void ResourceOwnerForgetTupleDesc (ResourceOwner owner, TupleDesc tupdesc)
 
void ResourceOwnerEnlargeSnapshots (ResourceOwner owner)
 
void ResourceOwnerRememberSnapshot (ResourceOwner owner, Snapshot snapshot)
 
void ResourceOwnerForgetSnapshot (ResourceOwner owner, Snapshot snapshot)
 
void ResourceOwnerEnlargeFiles (ResourceOwner owner)
 
void ResourceOwnerRememberFile (ResourceOwner owner, File file)
 
void ResourceOwnerForgetFile (ResourceOwner owner, File file)
 
void ResourceOwnerEnlargeDSMs (ResourceOwner owner)
 
void ResourceOwnerRememberDSM (ResourceOwner owner, dsm_segment *)
 
void ResourceOwnerForgetDSM (ResourceOwner owner, dsm_segment *)
 
void ResourceOwnerEnlargeJIT (ResourceOwner owner)
 
void ResourceOwnerRememberJIT (ResourceOwner owner, Datum handle)
 
void ResourceOwnerForgetJIT (ResourceOwner owner, Datum handle)
 
void ResourceOwnerEnlargeCryptoHash (ResourceOwner owner)
 
void ResourceOwnerRememberCryptoHash (ResourceOwner owner, Datum handle)
 
void ResourceOwnerForgetCryptoHash (ResourceOwner owner, Datum handle)
 
void ResourceOwnerEnlargeHMAC (ResourceOwner owner)
 
void ResourceOwnerRememberHMAC (ResourceOwner owner, Datum handle)
 
void ResourceOwnerForgetHMAC (ResourceOwner owner, Datum handle)
 

Function Documentation

◆ ResourceOwnerEnlargeBuffers()

void ResourceOwnerEnlargeBuffers ( ResourceOwner  owner)

Definition at line 950 of file resowner.c.

951 {
952  /* We used to allow pinning buffers without a resowner, but no more */
953  Assert(owner != NULL);
954  ResourceArrayEnlarge(&(owner->bufferarr));
955 }
Assert(fmt[strlen(fmt) - 1] !='\n')
static void ResourceArrayEnlarge(ResourceArray *resarr)
Definition: resowner.c:214
ResourceArray bufferarr
Definition: resowner.c:123

References Assert(), ResourceOwnerData::bufferarr, and ResourceArrayEnlarge().

Referenced by BgBufferSync(), BufferSync(), FlushDatabaseBuffers(), FlushRelationBuffers(), FlushRelationsAllBuffers(), IncrBufferRefCount(), ReadBuffer_common(), and ReadRecentBuffer().

◆ ResourceOwnerEnlargeCatCacheListRefs()

void ResourceOwnerEnlargeCatCacheListRefs ( ResourceOwner  owner)

Definition at line 1074 of file resowner.c.

1075 {
1077 }
ResourceArray catlistrefarr
Definition: resowner.c:125

References ResourceOwnerData::catlistrefarr, and ResourceArrayEnlarge().

Referenced by SearchCatCacheList().

◆ ResourceOwnerEnlargeCatCacheRefs()

void ResourceOwnerEnlargeCatCacheRefs ( ResourceOwner  owner)

Definition at line 1039 of file resowner.c.

1040 {
1041  ResourceArrayEnlarge(&(owner->catrefarr));
1042 }
ResourceArray catrefarr
Definition: resowner.c:124

References ResourceOwnerData::catrefarr, and ResourceArrayEnlarge().

Referenced by SearchCatCacheInternal(), and SearchCatCacheMiss().

◆ ResourceOwnerEnlargeCryptoHash()

void ResourceOwnerEnlargeCryptoHash ( ResourceOwner  owner)

Definition at line 1415 of file resowner.c.

1416 {
1418 }
ResourceArray cryptohasharr
Definition: resowner.c:133

References ResourceOwnerData::cryptohasharr, and ResourceArrayEnlarge().

Referenced by pg_cryptohash_create().

◆ ResourceOwnerEnlargeDSMs()

void ResourceOwnerEnlargeDSMs ( ResourceOwner  owner)

Definition at line 1335 of file resowner.c.

1336 {
1337  ResourceArrayEnlarge(&(owner->dsmarr));
1338 }
ResourceArray dsmarr
Definition: resowner.c:131

References ResourceOwnerData::dsmarr, and ResourceArrayEnlarge().

Referenced by dsm_create_descriptor(), and dsm_unpin_mapping().

◆ ResourceOwnerEnlargeFiles()

void ResourceOwnerEnlargeFiles ( ResourceOwner  owner)

Definition at line 1290 of file resowner.c.

1291 {
1292  ResourceArrayEnlarge(&(owner->filearr));
1293 }
ResourceArray filearr
Definition: resowner.c:130

References ResourceOwnerData::filearr, and ResourceArrayEnlarge().

Referenced by OpenTemporaryFile(), PathNameCreateTemporaryFile(), and PathNameOpenTemporaryFile().

◆ ResourceOwnerEnlargeHMAC()

void ResourceOwnerEnlargeHMAC ( ResourceOwner  owner)

Definition at line 1460 of file resowner.c.

1461 {
1462  ResourceArrayEnlarge(&(owner->hmacarr));
1463 }
ResourceArray hmacarr
Definition: resowner.c:134

References ResourceOwnerData::hmacarr, and ResourceArrayEnlarge().

Referenced by pg_hmac_create().

◆ ResourceOwnerEnlargeJIT()

void ResourceOwnerEnlargeJIT ( ResourceOwner  owner)

Definition at line 1380 of file resowner.c.

1381 {
1382  ResourceArrayEnlarge(&(owner->jitarr));
1383 }
ResourceArray jitarr
Definition: resowner.c:132

References ResourceOwnerData::jitarr, and ResourceArrayEnlarge().

Referenced by llvm_create_context().

◆ ResourceOwnerEnlargePlanCacheRefs()

void ResourceOwnerEnlargePlanCacheRefs ( ResourceOwner  owner)

Definition at line 1154 of file resowner.c.

1155 {
1156  ResourceArrayEnlarge(&(owner->planrefarr));
1157 }
ResourceArray planrefarr
Definition: resowner.c:127

References ResourceOwnerData::planrefarr, and ResourceArrayEnlarge().

Referenced by CachedPlanAllowsSimpleValidityCheck(), CachedPlanIsSimplyValid(), and GetCachedPlan().

◆ ResourceOwnerEnlargeRelationRefs()

void ResourceOwnerEnlargeRelationRefs ( ResourceOwner  owner)

Definition at line 1109 of file resowner.c.

1110 {
1111  ResourceArrayEnlarge(&(owner->relrefarr));
1112 }
ResourceArray relrefarr
Definition: resowner.c:126

References ResourceOwnerData::relrefarr, and ResourceArrayEnlarge().

Referenced by RelationIncrementReferenceCount().

◆ ResourceOwnerEnlargeSnapshots()

void ResourceOwnerEnlargeSnapshots ( ResourceOwner  owner)

Definition at line 1244 of file resowner.c.

1245 {
1246  ResourceArrayEnlarge(&(owner->snapshotarr));
1247 }
ResourceArray snapshotarr
Definition: resowner.c:129

References ResourceArrayEnlarge(), and ResourceOwnerData::snapshotarr.

Referenced by RegisterSnapshotOnOwner().

◆ ResourceOwnerEnlargeTupleDescs()

void ResourceOwnerEnlargeTupleDescs ( ResourceOwner  owner)

Definition at line 1198 of file resowner.c.

1199 {
1200  ResourceArrayEnlarge(&(owner->tupdescarr));
1201 }
ResourceArray tupdescarr
Definition: resowner.c:128

References ResourceArrayEnlarge(), and ResourceOwnerData::tupdescarr.

Referenced by IncrTupleDescRefCount().

◆ ResourceOwnerForgetBuffer()

void ResourceOwnerForgetBuffer ( ResourceOwner  owner,
Buffer  buffer 
)

Definition at line 972 of file resowner.c.

973 {
974  if (!ResourceArrayRemove(&(owner->bufferarr), BufferGetDatum(buffer)))
975  elog(ERROR, "buffer %d is not owned by resource owner %s",
976  buffer, owner->name);
977 }
#define ERROR
Definition: elog.h:39
static bool ResourceArrayRemove(ResourceArray *resarr, Datum value)
Definition: resowner.c:307
#define BufferGetDatum(buffer)
Definition: resowner.c:46
const char * name
Definition: resowner.c:120

References ResourceOwnerData::bufferarr, BufferGetDatum, elog(), ERROR, ResourceOwnerData::name, and ResourceArrayRemove().

Referenced by ReleaseAndReadBuffer(), ReleaseBuffer(), and UnpinBuffer().

◆ ResourceOwnerForgetCatCacheListRef()

void ResourceOwnerForgetCatCacheListRef ( ResourceOwner  owner,
CatCList list 
)

Definition at line 1094 of file resowner.c.

1095 {
1097  elog(ERROR, "catcache list reference %p is not owned by resource owner %s",
1098  list, owner->name);
1099 }
static Datum PointerGetDatum(const void *X)
Definition: postgres.h:322

References ResourceOwnerData::catlistrefarr, elog(), ERROR, sort-test::list, ResourceOwnerData::name, PointerGetDatum(), and ResourceArrayRemove().

Referenced by ReleaseCatCacheList().

◆ ResourceOwnerForgetCatCacheRef()

void ResourceOwnerForgetCatCacheRef ( ResourceOwner  owner,
HeapTuple  tuple 
)

Definition at line 1059 of file resowner.c.

1060 {
1061  if (!ResourceArrayRemove(&(owner->catrefarr), PointerGetDatum(tuple)))
1062  elog(ERROR, "catcache reference %p is not owned by resource owner %s",
1063  tuple, owner->name);
1064 }

References ResourceOwnerData::catrefarr, elog(), ERROR, ResourceOwnerData::name, PointerGetDatum(), and ResourceArrayRemove().

Referenced by ReleaseCatCache().

◆ ResourceOwnerForgetCryptoHash()

void ResourceOwnerForgetCryptoHash ( ResourceOwner  owner,
Datum  handle 
)

Definition at line 1435 of file resowner.c.

1436 {
1437  if (!ResourceArrayRemove(&(owner->cryptohasharr), handle))
1438  elog(ERROR, "cryptohash context %p is not owned by resource owner %s",
1439  DatumGetPointer(handle), owner->name);
1440 }
static Pointer DatumGetPointer(Datum X)
Definition: postgres.h:312

References ResourceOwnerData::cryptohasharr, DatumGetPointer(), elog(), ERROR, ResourceOwnerData::name, and ResourceArrayRemove().

Referenced by pg_cryptohash_free().

◆ ResourceOwnerForgetDSM()

void ResourceOwnerForgetDSM ( ResourceOwner  owner,
dsm_segment seg 
)

Definition at line 1355 of file resowner.c.

1356 {
1357  if (!ResourceArrayRemove(&(owner->dsmarr), PointerGetDatum(seg)))
1358  elog(ERROR, "dynamic shared memory segment %u is not owned by resource owner %s",
1359  dsm_segment_handle(seg), owner->name);
1360 }
dsm_handle dsm_segment_handle(dsm_segment *seg)
Definition: dsm.c:1094

References dsm_segment_handle(), ResourceOwnerData::dsmarr, elog(), ERROR, ResourceOwnerData::name, PointerGetDatum(), and ResourceArrayRemove().

Referenced by dsm_create(), dsm_detach(), and dsm_pin_mapping().

◆ ResourceOwnerForgetFile()

void ResourceOwnerForgetFile ( ResourceOwner  owner,
File  file 
)

Definition at line 1310 of file resowner.c.

1311 {
1312  if (!ResourceArrayRemove(&(owner->filearr), FileGetDatum(file)))
1313  elog(ERROR, "temporary file %d is not owned by resource owner %s",
1314  file, owner->name);
1315 }
#define FileGetDatum(file)
Definition: resowner.c:44

References elog(), ERROR, ResourceOwnerData::filearr, FileGetDatum, ResourceOwnerData::name, and ResourceArrayRemove().

Referenced by FileClose().

◆ ResourceOwnerForgetHMAC()

void ResourceOwnerForgetHMAC ( ResourceOwner  owner,
Datum  handle 
)

Definition at line 1480 of file resowner.c.

1481 {
1482  if (!ResourceArrayRemove(&(owner->hmacarr), handle))
1483  elog(ERROR, "HMAC context %p is not owned by resource owner %s",
1484  DatumGetPointer(handle), owner->name);
1485 }

References DatumGetPointer(), elog(), ERROR, ResourceOwnerData::hmacarr, ResourceOwnerData::name, and ResourceArrayRemove().

Referenced by pg_hmac_free().

◆ ResourceOwnerForgetJIT()

void ResourceOwnerForgetJIT ( ResourceOwner  owner,
Datum  handle 
)

Definition at line 1400 of file resowner.c.

1401 {
1402  if (!ResourceArrayRemove(&(owner->jitarr), handle))
1403  elog(ERROR, "JIT context %p is not owned by resource owner %s",
1404  DatumGetPointer(handle), owner->name);
1405 }

References DatumGetPointer(), elog(), ERROR, ResourceOwnerData::jitarr, ResourceOwnerData::name, and ResourceArrayRemove().

Referenced by jit_release_context().

◆ ResourceOwnerForgetLock()

void ResourceOwnerForgetLock ( ResourceOwner  owner,
LOCALLOCK locallock 
)

Definition at line 1010 of file resowner.c.

1011 {
1012  int i;
1013 
1014  if (owner->nlocks > MAX_RESOWNER_LOCKS)
1015  return; /* we have overflowed */
1016 
1017  Assert(owner->nlocks > 0);
1018  for (i = owner->nlocks - 1; i >= 0; i--)
1019  {
1020  if (locallock == owner->locks[i])
1021  {
1022  owner->locks[i] = owner->locks[owner->nlocks - 1];
1023  owner->nlocks--;
1024  return;
1025  }
1026  }
1027  elog(ERROR, "lock reference %p is not owned by resource owner %s",
1028  locallock, owner->name);
1029 }
int i
Definition: isn.c:73
#define MAX_RESOWNER_LOCKS
Definition: resowner.c:110
LOCALLOCK * locks[MAX_RESOWNER_LOCKS]
Definition: resowner.c:138

References Assert(), elog(), ERROR, i, ResourceOwnerData::locks, MAX_RESOWNER_LOCKS, ResourceOwnerData::name, and ResourceOwnerData::nlocks.

Referenced by LockReassignOwner(), LockRelease(), LockReleaseAll(), ReleaseLockIfHeld(), and RemoveLocalLock().

◆ ResourceOwnerForgetPlanCacheRef()

void ResourceOwnerForgetPlanCacheRef ( ResourceOwner  owner,
CachedPlan plan 
)

Definition at line 1174 of file resowner.c.

1175 {
1176  if (!ResourceArrayRemove(&(owner->planrefarr), PointerGetDatum(plan)))
1177  elog(ERROR, "plancache reference %p is not owned by resource owner %s",
1178  plan, owner->name);
1179 }

References elog(), ERROR, ResourceOwnerData::name, ResourceOwnerData::planrefarr, PointerGetDatum(), and ResourceArrayRemove().

Referenced by ReleaseCachedPlan().

◆ ResourceOwnerForgetRelationRef()

void ResourceOwnerForgetRelationRef ( ResourceOwner  owner,
Relation  rel 
)

Definition at line 1129 of file resowner.c.

1130 {
1131  if (!ResourceArrayRemove(&(owner->relrefarr), PointerGetDatum(rel)))
1132  elog(ERROR, "relcache reference %s is not owned by resource owner %s",
1133  RelationGetRelationName(rel), owner->name);
1134 }
#define RelationGetRelationName(relation)
Definition: rel.h:535

References elog(), ERROR, ResourceOwnerData::name, PointerGetDatum(), RelationGetRelationName, ResourceOwnerData::relrefarr, and ResourceArrayRemove().

Referenced by RelationDecrementReferenceCount().

◆ ResourceOwnerForgetSnapshot()

void ResourceOwnerForgetSnapshot ( ResourceOwner  owner,
Snapshot  snapshot 
)

Definition at line 1264 of file resowner.c.

1265 {
1266  if (!ResourceArrayRemove(&(owner->snapshotarr), PointerGetDatum(snapshot)))
1267  elog(ERROR, "snapshot reference %p is not owned by resource owner %s",
1268  snapshot, owner->name);
1269 }

References elog(), ERROR, ResourceOwnerData::name, PointerGetDatum(), ResourceArrayRemove(), and ResourceOwnerData::snapshotarr.

Referenced by UnregisterSnapshotFromOwner().

◆ ResourceOwnerForgetTupleDesc()

void ResourceOwnerForgetTupleDesc ( ResourceOwner  owner,
TupleDesc  tupdesc 
)

Definition at line 1218 of file resowner.c.

1219 {
1220  if (!ResourceArrayRemove(&(owner->tupdescarr), PointerGetDatum(tupdesc)))
1221  elog(ERROR, "tupdesc reference %p is not owned by resource owner %s",
1222  tupdesc, owner->name);
1223 }

References elog(), ERROR, ResourceOwnerData::name, PointerGetDatum(), ResourceArrayRemove(), and ResourceOwnerData::tupdescarr.

Referenced by DecrTupleDescRefCount().

◆ ResourceOwnerRememberBuffer()

void ResourceOwnerRememberBuffer ( ResourceOwner  owner,
Buffer  buffer 
)

Definition at line 963 of file resowner.c.

964 {
965  ResourceArrayAdd(&(owner->bufferarr), BufferGetDatum(buffer));
966 }
static void ResourceArrayAdd(ResourceArray *resarr, Datum value)
Definition: resowner.c:269

References ResourceOwnerData::bufferarr, BufferGetDatum, and ResourceArrayAdd().

Referenced by IncrBufferRefCount(), LocalBufferAlloc(), PinBuffer(), PinBuffer_Locked(), and ReadRecentBuffer().

◆ ResourceOwnerRememberCatCacheListRef()

void ResourceOwnerRememberCatCacheListRef ( ResourceOwner  owner,
CatCList list 
)

Definition at line 1085 of file resowner.c.

1086 {
1088 }

References ResourceOwnerData::catlistrefarr, sort-test::list, PointerGetDatum(), and ResourceArrayAdd().

Referenced by SearchCatCacheList().

◆ ResourceOwnerRememberCatCacheRef()

void ResourceOwnerRememberCatCacheRef ( ResourceOwner  owner,
HeapTuple  tuple 
)

Definition at line 1050 of file resowner.c.

1051 {
1052  ResourceArrayAdd(&(owner->catrefarr), PointerGetDatum(tuple));
1053 }

References ResourceOwnerData::catrefarr, PointerGetDatum(), and ResourceArrayAdd().

Referenced by SearchCatCacheInternal(), and SearchCatCacheMiss().

◆ ResourceOwnerRememberCryptoHash()

void ResourceOwnerRememberCryptoHash ( ResourceOwner  owner,
Datum  handle 
)

Definition at line 1426 of file resowner.c.

1427 {
1428  ResourceArrayAdd(&(owner->cryptohasharr), handle);
1429 }

References ResourceOwnerData::cryptohasharr, and ResourceArrayAdd().

Referenced by pg_cryptohash_create().

◆ ResourceOwnerRememberDSM()

void ResourceOwnerRememberDSM ( ResourceOwner  owner,
dsm_segment seg 
)

Definition at line 1346 of file resowner.c.

1347 {
1348  ResourceArrayAdd(&(owner->dsmarr), PointerGetDatum(seg));
1349 }

References ResourceOwnerData::dsmarr, PointerGetDatum(), and ResourceArrayAdd().

Referenced by dsm_create_descriptor(), and dsm_unpin_mapping().

◆ ResourceOwnerRememberFile()

void ResourceOwnerRememberFile ( ResourceOwner  owner,
File  file 
)

Definition at line 1301 of file resowner.c.

1302 {
1303  ResourceArrayAdd(&(owner->filearr), FileGetDatum(file));
1304 }

References ResourceOwnerData::filearr, FileGetDatum, and ResourceArrayAdd().

Referenced by RegisterTemporaryFile().

◆ ResourceOwnerRememberHMAC()

void ResourceOwnerRememberHMAC ( ResourceOwner  owner,
Datum  handle 
)

Definition at line 1471 of file resowner.c.

1472 {
1473  ResourceArrayAdd(&(owner->hmacarr), handle);
1474 }

References ResourceOwnerData::hmacarr, and ResourceArrayAdd().

Referenced by pg_hmac_create().

◆ ResourceOwnerRememberJIT()

void ResourceOwnerRememberJIT ( ResourceOwner  owner,
Datum  handle 
)

Definition at line 1391 of file resowner.c.

1392 {
1393  ResourceArrayAdd(&(owner->jitarr), handle);
1394 }

References ResourceOwnerData::jitarr, and ResourceArrayAdd().

Referenced by llvm_create_context().

◆ ResourceOwnerRememberLock()

void ResourceOwnerRememberLock ( ResourceOwner  owner,
LOCALLOCK locallock 
)

Definition at line 990 of file resowner.c.

991 {
992  Assert(locallock != NULL);
993 
994  if (owner->nlocks > MAX_RESOWNER_LOCKS)
995  return; /* we have already overflowed */
996 
997  if (owner->nlocks < MAX_RESOWNER_LOCKS)
998  owner->locks[owner->nlocks] = locallock;
999  else
1000  {
1001  /* overflowed */
1002  }
1003  owner->nlocks++;
1004 }

References Assert(), ResourceOwnerData::locks, MAX_RESOWNER_LOCKS, and ResourceOwnerData::nlocks.

Referenced by GrantLockLocal(), and LockReassignOwner().

◆ ResourceOwnerRememberPlanCacheRef()

void ResourceOwnerRememberPlanCacheRef ( ResourceOwner  owner,
CachedPlan plan 
)

◆ ResourceOwnerRememberRelationRef()

void ResourceOwnerRememberRelationRef ( ResourceOwner  owner,
Relation  rel 
)

Definition at line 1120 of file resowner.c.

1121 {
1122  ResourceArrayAdd(&(owner->relrefarr), PointerGetDatum(rel));
1123 }

References PointerGetDatum(), ResourceOwnerData::relrefarr, and ResourceArrayAdd().

Referenced by RelationIncrementReferenceCount().

◆ ResourceOwnerRememberSnapshot()

void ResourceOwnerRememberSnapshot ( ResourceOwner  owner,
Snapshot  snapshot 
)

Definition at line 1255 of file resowner.c.

1256 {
1257  ResourceArrayAdd(&(owner->snapshotarr), PointerGetDatum(snapshot));
1258 }

References PointerGetDatum(), ResourceArrayAdd(), and ResourceOwnerData::snapshotarr.

Referenced by RegisterSnapshotOnOwner().

◆ ResourceOwnerRememberTupleDesc()

void ResourceOwnerRememberTupleDesc ( ResourceOwner  owner,
TupleDesc  tupdesc 
)

Definition at line 1209 of file resowner.c.

1210 {
1211  ResourceArrayAdd(&(owner->tupdescarr), PointerGetDatum(tupdesc));
1212 }

References PointerGetDatum(), ResourceArrayAdd(), and ResourceOwnerData::tupdescarr.

Referenced by IncrTupleDescRefCount().