aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/dbcommands.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/commands/dbcommands.c')
-rw-r--r--src/backend/commands/dbcommands.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c
index 464a9b68fb2..95f302d93e4 100644
--- a/src/backend/commands/dbcommands.c
+++ b/src/backend/commands/dbcommands.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/dbcommands.c,v 1.68 2000/11/16 22:30:18 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/dbcommands.c,v 1.69 2000/11/18 03:36:48 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -154,7 +154,10 @@ createdb(const char *dbname, const char *dbpath,
/* ... otherwise we'd be open to shell exploits below */
#ifdef XLOG
- /* Try to force any dirty buffers out to disk */
+ /* 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();
#endif
@@ -251,6 +254,14 @@ createdb(const char *dbname, const char *dbpath,
/* Close pg_database, but keep lock till commit */
heap_close(pg_database_rel, NoLock);
+
+#ifdef XLOG
+ /* Force dirty buffers out to disk, so that newly-connecting backends
+ * will see the new database in pg_database right away. (They'll see
+ * an uncommitted tuple, but they don't care; see GetRawDatabaseInfo.)
+ */
+ BufferSync();
+#endif
}