|
|
|
|
@ -847,7 +847,7 @@ dropdb(const char *dbname, bool missing_ok) |
|
|
|
|
pgstat_drop_database(db_id); |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Tell bgwriter to forget any pending fsync and unlink requests for files |
|
|
|
|
* Tell checkpointer to forget any pending fsync and unlink requests for files |
|
|
|
|
* in the database; else the fsyncs will fail at next checkpoint, or |
|
|
|
|
* worse, it will delete files that belong to a newly created database |
|
|
|
|
* with the same OID. |
|
|
|
|
@ -855,9 +855,9 @@ dropdb(const char *dbname, bool missing_ok) |
|
|
|
|
ForgetDatabaseFsyncRequests(db_id); |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Force a checkpoint to make sure the bgwriter has received the message |
|
|
|
|
* Force a checkpoint to make sure the checkpointer has received the message |
|
|
|
|
* sent by ForgetDatabaseFsyncRequests. On Windows, this also ensures that |
|
|
|
|
* the bgwriter doesn't hold any open files, which would cause rmdir() to |
|
|
|
|
* background procs don't hold any open files, which would cause rmdir() to |
|
|
|
|
* fail. |
|
|
|
|
*/ |
|
|
|
|
RequestCheckpoint(CHECKPOINT_IMMEDIATE | CHECKPOINT_FORCE | CHECKPOINT_WAIT); |
|
|
|
|
@ -1088,7 +1088,7 @@ movedb(const char *dbname, const char *tblspcname) |
|
|
|
|
* process any pending unlink requests. Otherwise, the check for existing |
|
|
|
|
* files in the target directory might fail unnecessarily, not to mention |
|
|
|
|
* that the copy might fail due to source files getting deleted under it. |
|
|
|
|
* On Windows, this also ensures that the bgwriter doesn't hold any open |
|
|
|
|
* On Windows, this also ensures that background procs don't hold any open |
|
|
|
|
* files, which would cause rmdir() to fail. |
|
|
|
|
*/ |
|
|
|
|
RequestCheckpoint(CHECKPOINT_IMMEDIATE | CHECKPOINT_FORCE | CHECKPOINT_WAIT); |
|
|
|
|
|