]> granicus.if.org Git - postgresql/commitdiff
FlushRelationBuffers was also being a bit cavalier about whether the
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 31 Aug 2004 16:13:06 +0000 (16:13 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 31 Aug 2004 16:13:06 +0000 (16:13 +0000)
relation is already opened by smgr.

src/backend/storage/buffer/bufmgr.c

index 53c01c844a55543718ab400ad7d3673c68b92934..b9ba90cd8ecdc970630c1ca9e764ce7646b14bfd 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/storage/buffer/bufmgr.c,v 1.175 2004/08/29 05:06:47 momjian Exp $
+ *       $PostgreSQL: pgsql/src/backend/storage/buffer/bufmgr.c,v 1.176 2004/08/31 16:13:06 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1366,6 +1366,10 @@ FlushRelationBuffers(Relation rel, BlockNumber firstDelBlock)
        int                     i;
        BufferDesc *bufHdr;
 
+       /* Open rel at the smgr level if not already done */
+       if (rel->rd_smgr == NULL)
+               rel->rd_smgr = smgropen(rel->rd_node);
+
        if (rel->rd_istemp)
        {
                for (i = 0; i < NLocBuffer; i++)
@@ -1384,10 +1388,6 @@ FlushRelationBuffers(Relation rel, BlockNumber firstDelBlock)
                                        errcontext.previous = error_context_stack;
                                        error_context_stack = &errcontext;
 
-                                       /* Open rel at the smgr level if not already done */
-                                       if (rel->rd_smgr == NULL)
-                                               rel->rd_smgr = smgropen(rel->rd_node);
-
                                        smgrwrite(rel->rd_smgr,
                                                          bufHdr->tag.blockNum,
                                                          (char *) MAKE_PTR(bufHdr->data),