aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/cache/relcache.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/utils/cache/relcache.c')
-rw-r--r--src/backend/utils/cache/relcache.c19
1 files changed, 6 insertions, 13 deletions
diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c
index b6802d71f73..cae602d9e8e 100644
--- a/src/backend/utils/cache/relcache.c
+++ b/src/backend/utils/cache/relcache.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.67 1999/07/17 20:18:02 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.68 1999/09/02 02:57:50 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1256,9 +1256,13 @@ RelationFlushRelation(Relation *relationPtr,
if (!onlyFlushReferenceCountZero ||
RelationHasReferenceCountZero(relation))
{
-
oldcxt = MemoryContextSwitchTo((MemoryContext) CacheCxt);
+ /* make sure smgr and lower levels close the relation's files,
+ * if they weren't closed already
+ */
+ smgrclose(DEFAULT_SMGR, relation);
+
RelationCacheDelete(relation);
FreeTupleDesc(relation->rd_att);
@@ -1515,17 +1519,6 @@ RelationPurgeLocalRelation(bool xactCommitted)
else
smgrunlink(DEFAULT_SMGR, reln);
}
- else if (!IsBootstrapProcessingMode() && !(reln->rd_isnoname))
-
- /*
- * RelationFlushRelation () below will flush relation
- * information from the cache. We must call smgrclose to flush
- * relation information from SMGR & FMGR, too. We assume that
- * for temp relations smgrunlink is already called by
- * heap_destroyr and we skip smgrclose for them. -
- * vadim 05/22/97
- */
- smgrclose(DEFAULT_SMGR, reln);
reln->rd_myxactonly = FALSE;