7
7
*
8
8
*
9
9
* IDENTIFICATION
10
- * $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.11 1997/01/14 05:38:23 vadim Exp $
10
+ * $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.12 1997/01/20 04:01:50 vadim Exp $
11
11
*
12
12
* INTERFACE ROUTINES
13
13
* heap_creatr() - Create an uncataloged heap relation
@@ -303,14 +303,15 @@ heap_creatr(char *name,
303
303
*/
304
304
305
305
rdesc -> rd_istemp = isTemp ;
306
- rdesc -> rd_tmpunlinked = TRUE; /* change once table is opened */
307
306
308
307
/* ----------------
309
308
* have the storage manager create the relation.
310
309
* ----------------
311
310
*/
312
311
312
+ rdesc -> rd_tmpunlinked = TRUE; /* change once table is created */
313
313
rdesc -> rd_fd = (File )smgrcreate (smgr , rdesc );
314
+ rdesc -> rd_tmpunlinked = FALSE;
314
315
315
316
RelationRegisterRelation (rdesc );
316
317
@@ -1302,10 +1303,11 @@ heap_destroy(char *relname)
1302
1303
* unlink the relation and finish up.
1303
1304
* ----------------
1304
1305
*/
1305
- ( void ) smgrunlink (rdesc -> rd_rel -> relsmgr , rdesc );
1306
- if ( rdesc -> rd_istemp ) {
1307
- rdesc -> rd_tmpunlinked = TRUE ;
1306
+ if ( ! (rdesc -> rd_istemp ) || !( rdesc -> rd_tmpunlinked ) )
1307
+ {
1308
+ ( void ) smgrunlink ( rdesc -> rd_rel -> relsmgr , rdesc ) ;
1308
1309
}
1310
+ rdesc -> rd_tmpunlinked = TRUE;
1309
1311
1310
1312
RelationUnsetLockForWrite (rdesc );
1311
1313
@@ -1322,10 +1324,11 @@ void
1322
1324
heap_destroyr (Relation rdesc )
1323
1325
{
1324
1326
ReleaseRelationBuffers (rdesc );
1325
- ( void ) smgrunlink (rdesc -> rd_rel -> relsmgr , rdesc );
1326
- if ( rdesc -> rd_istemp ) {
1327
- rdesc -> rd_tmpunlinked = TRUE ;
1327
+ if ( ! (rdesc -> rd_istemp ) || !( rdesc -> rd_tmpunlinked ) )
1328
+ {
1329
+ ( void ) smgrunlink ( rdesc -> rd_rel -> relsmgr , rdesc ) ;
1328
1330
}
1331
+ rdesc -> rd_tmpunlinked = TRUE;
1329
1332
heap_close (rdesc );
1330
1333
RemoveFromTempRelList (rdesc );
1331
1334
}
0 commit comments