On 3/21/21 1:15 PM, Jan Wieck wrote:
On 3/21/21 12:57 PM, Tom Lane wrote:
Jan Wieck <j...@wi3ck.info> writes:
On 3/20/21 12:39 AM, Jan Wieck wrote:
On the way pg_upgrade also mangles the pg_database.datdba
(all databases are owned by postgres after an upgrade; will submit a
separate patch for that as I consider that a bug by itself).
Patch attached.
Hmm, doesn't this lose all *other* database-level properties?
I think maybe what we have here is a bug in pg_restore, its
--create switch ought to be trying to update the database's
ownership.
Possibly. I didn't look into that route.
Thanks for that. I like this patch a lot better.
Regards, Jan
--
Jan Wieck
Principle Database Engineer
Amazon Web Services
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index f8bec3f..19c1e71 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -3030,6 +3030,8 @@ dumpDatabase(Archive *fout)
resetPQExpBuffer(creaQry);
resetPQExpBuffer(delQry);
+ appendPQExpBuffer(creaQry, "ALTER DATABASE %s OWNER TO %s;\n", qdatname, dba);
+
if (strlen(datconnlimit) > 0 && strcmp(datconnlimit, "-1") != 0)
appendPQExpBuffer(creaQry, "ALTER DATABASE %s CONNECTION LIMIT = %s;\n",
qdatname, datconnlimit);