diff --git a/doc/src/sgml/ref/pg_dumpall.sgml b/doc/src/sgml/ref/pg_dumpall.sgml index 6cf1c0d538c8665b281f05cf1aaf7c7e48e3cf9d..e6de1ea64e5f80d3ad6031d793f3b0c9834db1a5 100644 --- a/doc/src/sgml/ref/pg_dumpall.sgml +++ b/doc/src/sgml/ref/pg_dumpall.sgml @@ -1,5 +1,5 @@ <!-- -$PostgreSQL: pgsql/doc/src/sgml/ref/pg_dumpall.sgml,v 1.55 2005/11/01 21:09:50 tgl Exp $ +$PostgreSQL: pgsql/doc/src/sgml/ref/pg_dumpall.sgml,v 1.56 2006/06/16 22:01:17 momjian Exp $ PostgreSQL documentation --> @@ -377,6 +377,13 @@ PostgreSQL documentation databases. </para> + <para> + <application>pg_dumpall</application> requires all needed + tablespace directories to exist before the restore or + database creation will fail for databases in non-default + locations. + </para> + </refsect1> diff --git a/src/bin/pg_dump/pg_dumpall.c b/src/bin/pg_dump/pg_dumpall.c index ecbd15f28c447b036d09c7d175608289f9b56526..b49766507e2238d4f9d13d5f21c8df4c3367ac9c 100644 --- a/src/bin/pg_dump/pg_dumpall.c +++ b/src/bin/pg_dump/pg_dumpall.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * - * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.79 2006/06/07 22:24:45 momjian Exp $ + * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.80 2006/06/16 22:01:17 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -888,7 +888,15 @@ dumpCreateDB(PGconn *conn) appendPQExpBuffer(buf, " ENCODING = "); appendStringLiteralConn(buf, dbencoding, conn); - /* Output tablespace if it isn't default */ + /* + * Output tablespace if it isn't the default. For default, it + * uses the default from the template database. If tablespace + * is specified and tablespace creation failed earlier, + * (e.g. no such directory), the database creation will fail + * too. One solution would be to use 'SET default_tablespace' + * like we do in pg_dump for setting non-default database + * locations. + */ if (strcmp(dbtablespace, "pg_default") != 0) appendPQExpBuffer(buf, " TABLESPACE = %s", fmtId(dbtablespace));