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 945 of file resowner.c.

946 {
947  /* We used to allow pinning buffers without a resowner, but no more */
948  Assert(owner != NULL);
949  ResourceArrayEnlarge(&(owner->bufferarr));
950 }
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 1069 of file resowner.c.

1070 {
1072 }
ResourceArray catlistrefarr
Definition: resowner.c:125

References ResourceOwnerData::catlistrefarr, and ResourceArrayEnlarge().

Referenced by SearchCatCacheList().

◆ ResourceOwnerEnlargeCatCacheRefs()

void ResourceOwnerEnlargeCatCacheRefs ( ResourceOwner  owner)

Definition at line 1034 of file resowner.c.

1035 {
1036  ResourceArrayEnlarge(&(owner->catrefarr));
1037 }
ResourceArray catrefarr
Definition: resowner.c:124

References ResourceOwnerData::catrefarr, and ResourceArrayEnlarge().

Referenced by SearchCatCacheInternal(), and SearchCatCacheMiss().

◆ ResourceOwnerEnlargeCryptoHash()

void ResourceOwnerEnlargeCryptoHash ( ResourceOwner  owner)

Definition at line 1410 of file resowner.c.

1411 {
1413 }
ResourceArray cryptohasharr
Definition: resowner.c:133

References ResourceOwnerData::cryptohasharr, and ResourceArrayEnlarge().

Referenced by pg_cryptohash_create().

◆ ResourceOwnerEnlargeDSMs()

void ResourceOwnerEnlargeDSMs ( ResourceOwner  owner)

Definition at line 1330 of file resowner.c.

1331 {
1332  ResourceArrayEnlarge(&(owner->dsmarr));
1333 }
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 1285 of file resowner.c.

1286 {
1287  ResourceArrayEnlarge(&(owner->filearr));
1288 }
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 1455 of file resowner.c.

1456 {
1457  ResourceArrayEnlarge(&(owner->hmacarr));
1458 }
ResourceArray hmacarr
Definition: resowner.c:134

References ResourceOwnerData::hmacarr, and ResourceArrayEnlarge().

Referenced by pg_hmac_create().

◆ ResourceOwnerEnlargeJIT()

void ResourceOwnerEnlargeJIT ( ResourceOwner  owner)

Definition at line 1375 of file resowner.c.

1376 {
1377  ResourceArrayEnlarge(&(owner->jitarr));
1378 }
ResourceArray jitarr
Definition: resowner.c:132

References ResourceOwnerData::jitarr, and ResourceArrayEnlarge().

Referenced by llvm_create_context().

◆ ResourceOwnerEnlargePlanCacheRefs()

void ResourceOwnerEnlargePlanCacheRefs ( ResourceOwner  owner)

Definition at line 1149 of file resowner.c.

1150 {
1151  ResourceArrayEnlarge(&(owner->planrefarr));
1152 }
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 1104 of file resowner.c.

1105 {
1106  ResourceArrayEnlarge(&(owner->relrefarr));
1107 }
ResourceArray relrefarr
Definition: resowner.c:126

References ResourceOwnerData::relrefarr, and ResourceArrayEnlarge().

Referenced by RelationIncrementReferenceCount().

◆ ResourceOwnerEnlargeSnapshots()

void ResourceOwnerEnlargeSnapshots ( ResourceOwner  owner)

Definition at line 1239 of file resowner.c.

1240 {
1241  ResourceArrayEnlarge(&(owner->snapshotarr));
1242 }
ResourceArray snapshotarr
Definition: resowner.c:129

References ResourceArrayEnlarge(), and ResourceOwnerData::snapshotarr.

Referenced by RegisterSnapshotOnOwner().

◆ ResourceOwnerEnlargeTupleDescs()

void ResourceOwnerEnlargeTupleDescs ( ResourceOwner  owner)

Definition at line 1193 of file resowner.c.

1194 {
1195  ResourceArrayEnlarge(&(owner->tupdescarr));
1196 }
ResourceArray tupdescarr
Definition: resowner.c:128

References ResourceArrayEnlarge(), and ResourceOwnerData::tupdescarr.

Referenced by IncrTupleDescRefCount().

◆ ResourceOwnerForgetBuffer()

void ResourceOwnerForgetBuffer ( ResourceOwner  owner,
Buffer  buffer 
)

Definition at line 967 of file resowner.c.

968 {
969  if (!ResourceArrayRemove(&(owner->bufferarr), BufferGetDatum(buffer)))
970  elog(ERROR, "buffer %d is not owned by resource owner %s",
971  buffer, owner->name);
972 }
#define ERROR
Definition: elog.h:33
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 1089 of file resowner.c.

1090 {
1092  elog(ERROR, "catcache list reference %p is not owned by resource owner %s",
1093  list, owner->name);
1094 }
#define PointerGetDatum(X)
Definition: postgres.h:600

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 1054 of file resowner.c.

1055 {
1056  if (!ResourceArrayRemove(&(owner->catrefarr), PointerGetDatum(tuple)))
1057  elog(ERROR, "catcache reference %p is not owned by resource owner %s",
1058  tuple, owner->name);
1059 }

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

Referenced by ReleaseCatCache().

◆ ResourceOwnerForgetCryptoHash()

void ResourceOwnerForgetCryptoHash ( ResourceOwner  owner,
Datum  handle 
)

Definition at line 1430 of file resowner.c.

1431 {
1432  if (!ResourceArrayRemove(&(owner->cryptohasharr), handle))
1433  elog(ERROR, "cryptohash context %p is not owned by resource owner %s",
1434  DatumGetPointer(handle), owner->name);
1435 }
#define DatumGetPointer(X)
Definition: postgres.h:593

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 1350 of file resowner.c.

1351 {
1352  if (!ResourceArrayRemove(&(owner->dsmarr), PointerGetDatum(seg)))
1353  elog(ERROR, "dynamic shared memory segment %u is not owned by resource owner %s",
1354  dsm_segment_handle(seg), owner->name);
1355 }
dsm_handle dsm_segment_handle(dsm_segment *seg)
Definition: dsm.c:1095

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 1305 of file resowner.c.

1306 {
1307  if (!ResourceArrayRemove(&(owner->filearr), FileGetDatum(file)))
1308  elog(ERROR, "temporary file %d is not owned by resource owner %s",
1309  file, owner->name);
1310 }
#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 1475 of file resowner.c.

1476 {
1477  if (!ResourceArrayRemove(&(owner->hmacarr), handle))
1478  elog(ERROR, "HMAC context %p is not owned by resource owner %s",
1479  DatumGetPointer(handle), owner->name);
1480 }

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 1395 of file resowner.c.

1396 {
1397  if (!ResourceArrayRemove(&(owner->jitarr), handle))
1398  elog(ERROR, "JIT context %p is not owned by resource owner %s",
1399  DatumGetPointer(handle), owner->name);
1400 }

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 1005 of file resowner.c.

1006 {
1007  int i;
1008 
1009  if (owner->nlocks > MAX_RESOWNER_LOCKS)
1010  return; /* we have overflowed */
1011 
1012  Assert(owner->nlocks > 0);
1013  for (i = owner->nlocks - 1; i >= 0; i--)
1014  {
1015  if (locallock == owner->locks[i])
1016  {
1017  owner->locks[i] = owner->locks[owner->nlocks - 1];
1018  owner->nlocks--;
1019  return;
1020  }
1021  }
1022  elog(ERROR, "lock reference %p is not owned by resource owner %s",
1023  locallock, owner->name);
1024 }
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 1169 of file resowner.c.

1170 {
1171  if (!ResourceArrayRemove(&(owner->planrefarr), PointerGetDatum(plan)))
1172  elog(ERROR, "plancache reference %p is not owned by resource owner %s",
1173  plan, owner->name);
1174 }

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

Referenced by ReleaseCachedPlan().

◆ ResourceOwnerForgetRelationRef()

void ResourceOwnerForgetRelationRef ( ResourceOwner  owner,
Relation  rel 
)

Definition at line 1124 of file resowner.c.

1125 {
1126  if (!ResourceArrayRemove(&(owner->relrefarr), PointerGetDatum(rel)))
1127  elog(ERROR, "relcache reference %s is not owned by resource owner %s",
1128  RelationGetRelationName(rel), owner->name);
1129 }
#define RelationGetRelationName(relation)
Definition: rel.h:522

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

Referenced by RelationDecrementReferenceCount().

◆ ResourceOwnerForgetSnapshot()

void ResourceOwnerForgetSnapshot ( ResourceOwner  owner,
Snapshot  snapshot 
)

Definition at line 1259 of file resowner.c.

1260 {
1261  if (!ResourceArrayRemove(&(owner->snapshotarr), PointerGetDatum(snapshot)))
1262  elog(ERROR, "snapshot reference %p is not owned by resource owner %s",
1263  snapshot, owner->name);
1264 }

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

Referenced by UnregisterSnapshotFromOwner().

◆ ResourceOwnerForgetTupleDesc()

void ResourceOwnerForgetTupleDesc ( ResourceOwner  owner,
TupleDesc  tupdesc 
)

Definition at line 1213 of file resowner.c.

1214 {
1215  if (!ResourceArrayRemove(&(owner->tupdescarr), PointerGetDatum(tupdesc)))
1216  elog(ERROR, "tupdesc reference %p is not owned by resource owner %s",
1217  tupdesc, owner->name);
1218 }

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

Referenced by DecrTupleDescRefCount().

◆ ResourceOwnerRememberBuffer()

void ResourceOwnerRememberBuffer ( ResourceOwner  owner,
Buffer  buffer 
)

Definition at line 958 of file resowner.c.

959 {
960  ResourceArrayAdd(&(owner->bufferarr), BufferGetDatum(buffer));
961 }
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 1080 of file resowner.c.

1081 {
1083 }

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

Referenced by SearchCatCacheList().

◆ ResourceOwnerRememberCatCacheRef()

void ResourceOwnerRememberCatCacheRef ( ResourceOwner  owner,
HeapTuple  tuple 
)

Definition at line 1045 of file resowner.c.

1046 {
1047  ResourceArrayAdd(&(owner->catrefarr), PointerGetDatum(tuple));
1048 }

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

Referenced by SearchCatCacheInternal(), and SearchCatCacheMiss().

◆ ResourceOwnerRememberCryptoHash()

void ResourceOwnerRememberCryptoHash ( ResourceOwner  owner,
Datum  handle 
)

Definition at line 1421 of file resowner.c.

1422 {
1423  ResourceArrayAdd(&(owner->cryptohasharr), handle);
1424 }

References ResourceOwnerData::cryptohasharr, and ResourceArrayAdd().

Referenced by pg_cryptohash_create().

◆ ResourceOwnerRememberDSM()

void ResourceOwnerRememberDSM ( ResourceOwner  owner,
dsm_segment seg 
)

Definition at line 1341 of file resowner.c.

1342 {
1343  ResourceArrayAdd(&(owner->dsmarr), PointerGetDatum(seg));
1344 }

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 1296 of file resowner.c.

1297 {
1298  ResourceArrayAdd(&(owner->filearr), FileGetDatum(file));
1299 }

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

Referenced by RegisterTemporaryFile().

◆ ResourceOwnerRememberHMAC()

void ResourceOwnerRememberHMAC ( ResourceOwner  owner,
Datum  handle 
)

Definition at line 1466 of file resowner.c.

1467 {
1468  ResourceArrayAdd(&(owner->hmacarr), handle);
1469 }

References ResourceOwnerData::hmacarr, and ResourceArrayAdd().

Referenced by pg_hmac_create().

◆ ResourceOwnerRememberJIT()

void ResourceOwnerRememberJIT ( ResourceOwner  owner,
Datum  handle 
)

Definition at line 1386 of file resowner.c.

1387 {
1388  ResourceArrayAdd(&(owner->jitarr), handle);
1389 }

References ResourceOwnerData::jitarr, and ResourceArrayAdd().

Referenced by llvm_create_context().

◆ ResourceOwnerRememberLock()

void ResourceOwnerRememberLock ( ResourceOwner  owner,
LOCALLOCK locallock 
)

Definition at line 985 of file resowner.c.

986 {
987  Assert(locallock != NULL);
988 
989  if (owner->nlocks > MAX_RESOWNER_LOCKS)
990  return; /* we have already overflowed */
991 
992  if (owner->nlocks < MAX_RESOWNER_LOCKS)
993  owner->locks[owner->nlocks] = locallock;
994  else
995  {
996  /* overflowed */
997  }
998  owner->nlocks++;
999 }

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 1115 of file resowner.c.

1116 {
1117  ResourceArrayAdd(&(owner->relrefarr), PointerGetDatum(rel));
1118 }

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

Referenced by RelationIncrementReferenceCount().

◆ ResourceOwnerRememberSnapshot()

void ResourceOwnerRememberSnapshot ( ResourceOwner  owner,
Snapshot  snapshot 
)

Definition at line 1250 of file resowner.c.

1251 {
1252  ResourceArrayAdd(&(owner->snapshotarr), PointerGetDatum(snapshot));
1253 }

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

Referenced by RegisterSnapshotOnOwner().

◆ ResourceOwnerRememberTupleDesc()

void ResourceOwnerRememberTupleDesc ( ResourceOwner  owner,
TupleDesc  tupdesc 
)

Definition at line 1204 of file resowner.c.

1205 {
1206  ResourceArrayAdd(&(owner->tupdescarr), PointerGetDatum(tupdesc));
1207 }

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

Referenced by IncrTupleDescRefCount().