|
|
|
@ -7,7 +7,7 @@ |
|
|
|
|
* |
|
|
|
|
* |
|
|
|
|
* IDENTIFICATION |
|
|
|
|
* $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.1.1.1 1996/07/09 06:21:15 scrappy Exp $ |
|
|
|
|
* $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.2 1996/10/24 07:54:45 scrappy Exp $ |
|
|
|
|
* |
|
|
|
|
* INTERFACE ROUTINES |
|
|
|
|
* heap_creatr() - Create an uncataloged heap relation |
|
|
|
@ -315,6 +315,13 @@ heap_creatr(char *name, |
|
|
|
|
rdesc->rd_rel->reltype = relid; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* ----------------
|
|
|
|
|
* remember if this is a temp relation |
|
|
|
|
* ---------------- |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
rdesc->rd_istemp = isTemp; |
|
|
|
|
|
|
|
|
|
/* ----------------
|
|
|
|
|
* have the storage manager create the relation. |
|
|
|
|
* ---------------- |
|
|
|
@ -1306,6 +1313,9 @@ heap_destroy(char *relname) |
|
|
|
|
* ---------------- |
|
|
|
|
*/ |
|
|
|
|
(void) smgrunlink(rdesc->rd_rel->relsmgr, rdesc); |
|
|
|
|
if(rdesc->rd_istemp) { |
|
|
|
|
rdesc->rd_tmpunlinked = TRUE; |
|
|
|
|
} |
|
|
|
|
heap_close(rdesc); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -1320,6 +1330,9 @@ heap_destroyr(Relation rdesc) |
|
|
|
|
{ |
|
|
|
|
ReleaseTmpRelBuffers(rdesc); |
|
|
|
|
(void) smgrunlink(rdesc->rd_rel->relsmgr, rdesc); |
|
|
|
|
if(rdesc->rd_istemp) { |
|
|
|
|
rdesc->rd_tmpunlinked = TRUE; |
|
|
|
|
} |
|
|
|
|
heap_close(rdesc); |
|
|
|
|
RemoveFromTempRelList(rdesc); |
|
|
|
|
} |
|
|
|
@ -1357,7 +1370,7 @@ InitTempRelList() |
|
|
|
|
tempRels = (TempRelList*)malloc(sizeof(TempRelList)); |
|
|
|
|
tempRels->size = TEMP_REL_LIST_SIZE; |
|
|
|
|
tempRels->rels = (Relation*)malloc(sizeof(Relation) * tempRels->size); |
|
|
|
|
memset(tempRels->rels, sizeof(Relation) * tempRels->size , 0); |
|
|
|
|
memset(tempRels->rels, 0, sizeof(Relation) * tempRels->size); |
|
|
|
|
tempRels->num = 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -1418,7 +1431,7 @@ DestroyTempRels() |
|
|
|
|
for (i=0;i<tempRels->num;i++) { |
|
|
|
|
rdesc = tempRels->rels[i]; |
|
|
|
|
/* rdesc may be NULL if it has been removed from the list already */ |
|
|
|
|
if (rdesc)
|
|
|
|
|
if (rdesc) |
|
|
|
|
heap_destroyr(rdesc); |
|
|
|
|
} |
|
|
|
|
free(tempRels->rels); |
|
|
|
|