Force a checkpoint in CREATE DATABASE before starting to copy the files,
authorHeikki Linnakangas <[email protected]>
Thu, 9 Oct 2008 10:34:22 +0000 (10:34 +0000)
committerHeikki Linnakangas <[email protected]>
Thu, 9 Oct 2008 10:34:22 +0000 (10:34 +0000)
commit95f3c355bd0c2f6d4bbd4314cdf14b8019d03892
tree7dad281a559fc122784df0d1934a36e23e5be229
parent3c66048adbdc0ab95b9f8e8efc55eb6cb65dca08
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