*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.10 1997/01/01 06:01:16 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.11 1997/01/14 05:38:23 vadim Exp $
*
* INTERFACE ROUTINES
* heap_creatr() - Create an uncataloged heap relation
rdesc = heap_openr(relname);
if (rdesc == NULL)
elog(WARN,"Relation %s Does Not Exist!", relname);
+
+ RelationSetLockForWrite(rdesc);
/* ----------------
* prevent deletion of system relations
*/
DeletePgRelationTuple(rdesc);
+ /*
+ * release dirty buffers of this relation
+ */
+ ReleaseRelationBuffers (rdesc);
+
/* ----------------
* flush the relation from the relcache
* ----------------
if(rdesc->rd_istemp) {
rdesc->rd_tmpunlinked = TRUE;
}
+
+ RelationUnsetLockForWrite(rdesc);
+
heap_close(rdesc);
}
void
heap_destroyr(Relation rdesc)
{
- ReleaseTmpRelBuffers(rdesc);
+ ReleaseRelationBuffers(rdesc);
(void) smgrunlink(rdesc->rd_rel->relsmgr, rdesc);
if(rdesc->rd_istemp) {
rdesc->rd_tmpunlinked = TRUE;