OSDN Git Service

Dept. of second thoughts: it'd be a good idea to flush buffers
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 30 Aug 2004 03:50:24 +0000 (03:50 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 30 Aug 2004 03:50:24 +0000 (03:50 +0000)
during replay of CREATE DATABASE as well as the first time around.
Else it's possible that the copy operation will copy obsolete blocks.
We are still a long way from guaranteeing anything about using a
recently-written database as a CREATE template, but this seems needed
to ensure the existing behavior holds up during replay.

src/backend/commands/dbcommands.c

index 38696cf..1c94257 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/commands/dbcommands.c,v 1.143 2004/08/30 02:54:38 momjian Exp $
+ *       $PostgreSQL: pgsql/src/backend/commands/dbcommands.c,v 1.144 2004/08/30 03:50:24 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1136,6 +1136,13 @@ dbase_redo(XLogRecPtr lsn, XLogRecord *record)
                                                        dst_path)));
                }
 
+               /*
+                * Force dirty buffers out to disk, to ensure source database is
+                * up-to-date for the copy.  (We really only need to flush buffers for
+                * the source database...)
+                */
+               BufferSync(-1, -1);
+
 #ifndef WIN32
 
                /*