heap_destroy() now calls RelationForgetRelation() to really flush
the relation from the relcache.
This commit is contained in:
parent
ded4650642
commit
9c6cdb4d7b
|
@ -7,7 +7,7 @@
|
|||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.13 1997/04/02 03:41:16 vadim Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.14 1997/06/04 08:59:22 vadim Exp $
|
||||
*
|
||||
* INTERFACE ROUTINES
|
||||
* heap_creatr() - Create an uncataloged heap relation
|
||||
|
@ -1229,6 +1229,7 @@ void
|
|||
heap_destroy(char *relname)
|
||||
{
|
||||
Relation rdesc;
|
||||
Oid rid;
|
||||
|
||||
/* ----------------
|
||||
* first open the relation. if the relation does exist,
|
||||
|
@ -1236,10 +1237,11 @@ heap_destroy(char *relname)
|
|||
* ----------------
|
||||
*/
|
||||
rdesc = heap_openr(relname);
|
||||
if (rdesc == NULL)
|
||||
elog(WARN,"Relation %s Does Not Exist!", relname);
|
||||
if ( rdesc == NULL )
|
||||
elog (WARN, "Relation %s Does Not Exist!", relname);
|
||||
|
||||
RelationSetLockForWrite(rdesc);
|
||||
rid = rdesc->rd_id;
|
||||
|
||||
/* ----------------
|
||||
* prevent deletion of system relations
|
||||
|
@ -1268,7 +1270,7 @@ heap_destroy(char *relname)
|
|||
* ----------------
|
||||
*/
|
||||
if (rdesc->rd_rules != NULL) {
|
||||
RelationRemoveRules(rdesc->rd_id);
|
||||
RelationRemoveRules(rid);
|
||||
}
|
||||
|
||||
/* ----------------
|
||||
|
@ -1300,8 +1302,9 @@ heap_destroy(char *relname)
|
|||
/* ----------------
|
||||
* flush the relation from the relcache
|
||||
* ----------------
|
||||
*/
|
||||
* Does nothing!!! Flushing moved below. - vadim 06/04/97
|
||||
RelationIdInvalidateRelationCacheByRelationId(rdesc->rd_id);
|
||||
*/
|
||||
|
||||
/* ----------------
|
||||
* unlink the relation and finish up.
|
||||
|
@ -1316,6 +1319,9 @@ heap_destroy(char *relname)
|
|||
RelationUnsetLockForWrite(rdesc);
|
||||
|
||||
heap_close(rdesc);
|
||||
|
||||
/* ok - flush the relation from the relcache */
|
||||
RelationForgetRelation (rid);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue