7
7
*
8
8
*
9
9
* 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 $
11
11
*
12
12
* INTERFACE ROUTINES
13
13
* heap_creatr() - Create an uncataloged heap relation
@@ -1233,6 +1233,8 @@ heap_destroy(char *relname)
1233
1233
rdesc = heap_openr (relname );
1234
1234
if (rdesc == NULL )
1235
1235
elog (WARN ,"Relation %s Does Not Exist!" , relname );
1236
+
1237
+ RelationSetLockForWrite (rdesc );
1236
1238
1237
1239
/* ----------------
1238
1240
* prevent deletion of system relations
@@ -1285,6 +1287,11 @@ heap_destroy(char *relname)
1285
1287
*/
1286
1288
DeletePgRelationTuple (rdesc );
1287
1289
1290
+ /*
1291
+ * release dirty buffers of this relation
1292
+ */
1293
+ ReleaseRelationBuffers (rdesc );
1294
+
1288
1295
/* ----------------
1289
1296
* flush the relation from the relcache
1290
1297
* ----------------
@@ -1299,6 +1306,9 @@ heap_destroy(char *relname)
1299
1306
if (rdesc -> rd_istemp ) {
1300
1307
rdesc -> rd_tmpunlinked = TRUE;
1301
1308
}
1309
+
1310
+ RelationUnsetLockForWrite (rdesc );
1311
+
1302
1312
heap_close (rdesc );
1303
1313
}
1304
1314
@@ -1311,7 +1321,7 @@ heap_destroy(char *relname)
1311
1321
void
1312
1322
heap_destroyr (Relation rdesc )
1313
1323
{
1314
- ReleaseTmpRelBuffers (rdesc );
1324
+ ReleaseRelationBuffers (rdesc );
1315
1325
(void ) smgrunlink (rdesc -> rd_rel -> relsmgr , rdesc );
1316
1326
if (rdesc -> rd_istemp ) {
1317
1327
rdesc -> rd_tmpunlinked = TRUE;
0 commit comments