77 *
88 *
99 * IDENTIFICATION
10- * $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.10 1997/01/01 06:01:16 momjian Exp $
10+ * $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.11 1997/01/14 05:38:23 vadim Exp $
1111 *
1212 * INTERFACE ROUTINES
1313 *heap_creatr()- Create an uncataloged heap relation
@@ -1233,6 +1233,8 @@ heap_destroy(char *relname)
12331233rdesc = heap_openr (relname );
12341234if (rdesc == NULL )
12351235elog (WARN ,"Relation %s Does Not Exist!" ,relname );
1236+
1237+ RelationSetLockForWrite (rdesc );
12361238
12371239/* ----------------
12381240 *prevent deletion of system relations
@@ -1285,6 +1287,11 @@ heap_destroy(char *relname)
12851287 */
12861288DeletePgRelationTuple (rdesc );
12871289
1290+ /*
1291+ * release dirty buffers of this relation
1292+ */
1293+ ReleaseRelationBuffers (rdesc );
1294+
12881295/* ----------------
12891296 *flush the relation from the relcache
12901297 * ----------------
@@ -1299,6 +1306,9 @@ heap_destroy(char *relname)
12991306if (rdesc -> rd_istemp ) {
13001307rdesc -> rd_tmpunlinked = TRUE;
13011308 }
1309+
1310+ RelationUnsetLockForWrite (rdesc );
1311+
13021312heap_close (rdesc );
13031313}
13041314
@@ -1311,7 +1321,7 @@ heap_destroy(char *relname)
13111321void
13121322heap_destroyr (Relation rdesc )
13131323{
1314- ReleaseTmpRelBuffers (rdesc );
1324+ ReleaseRelationBuffers (rdesc );
13151325 (void )smgrunlink (rdesc -> rd_rel -> relsmgr ,rdesc );
13161326if (rdesc -> rd_istemp ) {
13171327rdesc -> rd_tmpunlinked = TRUE;