public inbox for [email protected]  
help / color / mirror / Atom feed
From: Jan Wieck <[email protected]>
To: Tom Lane <[email protected]>
Cc: Magnus Hagander <[email protected]>
Cc: Robins Tharakan <[email protected]>
Cc: Peter Eisentraut <[email protected]>
Cc: [email protected] <[email protected]>
Subject: Re: Fix pg_upgrade to preserve datdba
Date: Sun, 21 Mar 2021 13:50:45 -0400
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
References: <[email protected]>
	<CABUevEwyLb9VE0D+bAQtUnaA7bffXYzBpopYuh7kGTQxY9T5_g@mail.gmail.com>
	<CAEP4nAw2WA1wyb9LG7BOEuN3Xr-xWiZZ0w_hKtpyvdUPKmcAJA@mail.gmail.com>
	<[email protected]>
	<CABUevEzvU07CqwGdaOmxNfDtrkY-xEcLjiN3GAmurowyCnbG7w@mail.gmail.com>
	<[email protected]>
	<[email protected]>
	<[email protected]>
	<[email protected]>
	<[email protected]>

On 3/21/21 1:15 PM, Jan Wieck wrote:
> On 3/21/21 12:57 PM, Tom Lane wrote:
>> Jan Wieck <[email protected]> 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


Attachments:

  [text/x-patch] pg_restore-preserve-datdba.v1.diff (530B, 2-pg_restore-preserve-datdba.v1.diff)
  download | inline diff:
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);


view thread (43+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected], [email protected], [email protected], [email protected]
  Subject: Re: Fix pg_upgrade to preserve datdba
  In-Reply-To: <[email protected]>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox