Add some debugging support code (ifdef'd out in normal use).
This commit is contained in:
parent
e2586c3c62
commit
b95f81a54a
19
src/backend/utils/cache/relcache.c
vendored
19
src/backend/utils/cache/relcache.c
vendored
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.125 2001/01/06 21:53:18 tgl Exp $
|
* $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.126 2001/01/08 18:34:44 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -1557,7 +1557,13 @@ RelationNameGetRelation(const char *relationName)
|
|||||||
/* --------------------------------
|
/* --------------------------------
|
||||||
* RelationClose - close an open relation
|
* RelationClose - close an open relation
|
||||||
*
|
*
|
||||||
* Actually, we just decrement the refcount.
|
* Actually, we just decrement the refcount.
|
||||||
|
*
|
||||||
|
* NOTE: if compiled with -DRELCACHE_FORCE_RELEASE then relcache entries
|
||||||
|
* will be freed as soon as their refcount goes to zero. In combination
|
||||||
|
* with aset.c's CLOBBER_FREED_MEMORY option, this provides a good test
|
||||||
|
* to catch references to already-released relcache entries. It slows
|
||||||
|
* things down quite a bit, however.
|
||||||
* --------------------------------
|
* --------------------------------
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
@ -1565,6 +1571,11 @@ RelationClose(Relation relation)
|
|||||||
{
|
{
|
||||||
/* Note: no locking manipulations needed */
|
/* Note: no locking manipulations needed */
|
||||||
RelationDecrementReferenceCount(relation);
|
RelationDecrementReferenceCount(relation);
|
||||||
|
|
||||||
|
#ifdef RELCACHE_FORCE_RELEASE
|
||||||
|
if (RelationHasReferenceCountZero(relation) && !relation->rd_myxactonly)
|
||||||
|
RelationClearRelation(relation, false);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef ENABLE_REINDEX_NAILED_RELATIONS
|
#ifdef ENABLE_REINDEX_NAILED_RELATIONS
|
||||||
@ -1603,6 +1614,7 @@ RelationReloadClassinfo(Relation relation)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif /* ENABLE_REINDEX_NAILED_RELATIONS */
|
#endif /* ENABLE_REINDEX_NAILED_RELATIONS */
|
||||||
|
|
||||||
/* --------------------------------
|
/* --------------------------------
|
||||||
* RelationClearRelation
|
* RelationClearRelation
|
||||||
*
|
*
|
||||||
@ -1611,9 +1623,6 @@ RelationReloadClassinfo(Relation relation)
|
|||||||
* usually used when we are notified of a change to an open relation
|
* usually used when we are notified of a change to an open relation
|
||||||
* (one with refcount > 0). However, this routine just does whichever
|
* (one with refcount > 0). However, this routine just does whichever
|
||||||
* it's told to do; callers must determine which they want.
|
* it's told to do; callers must determine which they want.
|
||||||
*
|
|
||||||
* If we detect a change in the relation's TupleDesc, rules, or triggers
|
|
||||||
* while rebuilding, we complain unless refcount is 0.
|
|
||||||
* --------------------------------
|
* --------------------------------
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
|
Loading…
x
Reference in New Issue
Block a user