• Tom Lane's avatar
    Clean up CREATE DATABASE processing to make it more robust and get rid · 558730ac
    Tom Lane authored
    of special case for Windows port.  Put a PG_TRY around most of createdb()
    to ensure that we remove copied subdirectories on failure, even if the
    failure happens while creating the pg_database row.  (I think this explains
    Oliver Siegmar's recent report.)  Having done that, there's no need for
    the fragile assumption that copydir() mustn't ereport(ERROR), so simplify
    its API.  Eliminate the old code that used system("cp ...") to copy
    subdirectories, in favor of using copydir() on all platforms.  This not
    only should allow much better error reporting, but allows us to fsync
    the created files before trusting that the copy has succeeded.
    558730ac
configure 664 KB