*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.11 1997/01/14 05:38:23 vadim Exp $
+ * $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.12 1997/01/20 04:01:50 vadim Exp $
*
* INTERFACE ROUTINES
* heap_creatr() - Create an uncataloged heap relation
*/
rdesc->rd_istemp = isTemp;
- rdesc->rd_tmpunlinked = TRUE; /* change once table is opened */
/* ----------------
* have the storage manager create the relation.
* ----------------
*/
+ rdesc->rd_tmpunlinked = TRUE; /* change once table is created */
rdesc->rd_fd = (File)smgrcreate(smgr, rdesc);
+ rdesc->rd_tmpunlinked = FALSE;
RelationRegisterRelation(rdesc);
* unlink the relation and finish up.
* ----------------
*/
- (void) smgrunlink(rdesc->rd_rel->relsmgr, rdesc);
- if(rdesc->rd_istemp) {
- rdesc->rd_tmpunlinked = TRUE;
+ if ( !(rdesc->rd_istemp) || !(rdesc->rd_tmpunlinked) )
+ {
+ (void) smgrunlink(rdesc->rd_rel->relsmgr, rdesc);
}
+ rdesc->rd_tmpunlinked = TRUE;
RelationUnsetLockForWrite(rdesc);
heap_destroyr(Relation rdesc)
{
ReleaseRelationBuffers(rdesc);
- (void) smgrunlink(rdesc->rd_rel->relsmgr, rdesc);
- if(rdesc->rd_istemp) {
- rdesc->rd_tmpunlinked = TRUE;
+ if ( !(rdesc->rd_istemp) || !(rdesc->rd_tmpunlinked) )
+ {
+ (void) smgrunlink(rdesc->rd_rel->relsmgr, rdesc);
}
+ rdesc->rd_tmpunlinked = TRUE;
heap_close(rdesc);
RemoveFromTempRelList(rdesc);
}