* Portions Copyright (c) 1994, Regents of the University of California
*
*
- * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.60 2005/06/21 04:02:32 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.61 2005/06/21 15:22:18 tgl Exp $
*
*-------------------------------------------------------------------------
*/
if (verbose)
dumpTimestamp("Started on");
- printf("\\connect \"postgres\"\n\n");
+ printf("\\connect postgres\n\n");
if (!data_only)
{
char *dbtablespace = PQgetvalue(res, i, 5);
char *fdbname;
- if (strcmp(dbname, "template1") == 0)
- continue;
-
buf = createPQExpBuffer();
-
- /* needed for buildACLCommands() */
fdbname = strdup(fmtId(dbname));
- if (output_clean)
- appendPQExpBuffer(buf, "DROP DATABASE %s;\n", fdbname);
-
- appendPQExpBuffer(buf, "CREATE DATABASE %s", fdbname);
+ /*
+ * Skip the CREATE DATABASE commands for "template1" and "postgres",
+ * since they are presumably already there in the destination cluster.
+ * We do want to emit their ACLs and config options if any, however.
+ */
+ if (strcmp(dbname, "template1") != 0 &&
+ strcmp(dbname, "postgres") != 0)
+ {
+ if (output_clean)
+ appendPQExpBuffer(buf, "DROP DATABASE %s;\n", fdbname);
- appendPQExpBuffer(buf, " WITH TEMPLATE = template0");
+ appendPQExpBuffer(buf, "CREATE DATABASE %s", fdbname);
- if (strlen(dbowner) != 0)
- appendPQExpBuffer(buf, " OWNER = %s",
- fmtId(dbowner));
+ appendPQExpBuffer(buf, " WITH TEMPLATE = template0");
- appendPQExpBuffer(buf, " ENCODING = ");
- appendStringLiteral(buf, dbencoding, true);
+ if (strlen(dbowner) != 0)
+ appendPQExpBuffer(buf, " OWNER = %s", fmtId(dbowner));
- /* Output tablespace if it isn't default */
- if (strcmp(dbtablespace, "pg_default") != 0)
- appendPQExpBuffer(buf, " TABLESPACE = %s",
- fmtId(dbtablespace));
+ appendPQExpBuffer(buf, " ENCODING = ");
+ appendStringLiteral(buf, dbencoding, true);
- appendPQExpBuffer(buf, ";\n");
+ /* Output tablespace if it isn't default */
+ if (strcmp(dbtablespace, "pg_default") != 0)
+ appendPQExpBuffer(buf, " TABLESPACE = %s",
+ fmtId(dbtablespace));
- if (strcmp(dbistemplate, "t") == 0)
- {
- appendPQExpBuffer(buf, "UPDATE pg_database SET datistemplate = 't' WHERE datname = ");
- appendStringLiteral(buf, dbname, true);
appendPQExpBuffer(buf, ";\n");
+
+ if (strcmp(dbistemplate, "t") == 0)
+ {
+ appendPQExpBuffer(buf, "UPDATE pg_database SET datistemplate = 't' WHERE datname = ");
+ appendStringLiteral(buf, dbname, true);
+ appendPQExpBuffer(buf, ";\n");
+ }
}
if (!skip_acls &&
}
printf("%s", buf->data);
- destroyPQExpBuffer(buf);
- free(fdbname);
if (server_version >= 70300)
dumpDatabaseConfig(conn, dbname);
+
+ destroyPQExpBuffer(buf);
+ free(fdbname);
}
PQclear(res);