diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c index 6e8e27a748..6f2923e6a8 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.70 2000/11/30 08:46:22 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/dbcommands.c,v 1.71 2001/01/14 22:14:10 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -153,7 +153,8 @@ createdb(const char *dbname, const char *dbpath, elog(ERROR, "database path may not contain single quotes"); /* ... otherwise we'd be open to shell exploits below */ - /* Force dirty buffers out to disk, to ensure source database is + /* + * 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...) */ @@ -253,7 +254,8 @@ createdb(const char *dbname, const char *dbpath, /* Close pg_database, but keep lock till commit */ heap_close(pg_database_rel, NoLock); - /* Force dirty buffers out to disk, so that newly-connecting backends + /* + * 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.) */ @@ -369,6 +371,14 @@ dropdb(const char *dbname) * Remove the database's subdirectory and everything in it. */ remove_dbdirs(nominal_loc, alt_loc); + + /* + * Force dirty buffers out to disk, so that newly-connecting backends + * will see the database tuple marked dead in pg_database right away. + * (They'll see an uncommitted deletion, but they don't care; see + * GetRawDatabaseInfo.) + */ + BufferSync(); }