OSDN Git Service

Force a checkpoint in CREATE DATABASE before starting to copy the files,
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Thu, 9 Oct 2008 10:34:06 +0000 (10:34 +0000)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Thu, 9 Oct 2008 10:34:06 +0000 (10:34 +0000)
commitdb31addaae1664b2e9028421d8a545f2c0ef2746
treeaff9f05e25d691073a88abb83a86e529a74294cd
parent3437286356ec3dcbc5abadf78f2587e845a2d7c8
Force a checkpoint in CREATE DATABASE before starting to copy the files,
to process any pending unlinks for the source database.

Before, if you dropped a relation in the template database just before
CREATE DATABASE, and a checkpoint happened during copydir(), the checkpoint
might delete a file that we're just about to copy, causing lstat() in
copydir() to fail with ENOENT.

Backpatch to 8.3, where the pending unlinks were introduced.

Per report by Matthew Wakeling and analysis by Tom Lane.
src/backend/commands/dbcommands.c