]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
pg_dump: label INDEX ATTACH ArchiveEntries with an owner.
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 12 Jan 2021 18:37:38 +0000 (13:37 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 12 Jan 2021 18:37:38 +0000 (13:37 -0500)
Although a partitioned index's attachment to its parent doesn't
have separate ownership, the ArchiveEntry for it needs to be
marked with an owner anyway, to ensure that the ALTER command
is run by the appropriate role when restoring with
--use-set-session-authorization.  Without this, the ALTER will
be run by the role that started the restore session, which will
usually work but it's formally the wrong thing.

Back-patch to v11 where this type of ArchiveEntry was added.
In HEAD, add equivalent commentary to the just-added TABLE ATTACH
case, which I'd made do the right thing already.

Discussion: https://postgr.es/m/1094034.1610418498@sss.pgh.pa.us

src/bin/pg_dump/pg_dump.c

index ad7c0376c9b65ba4f73ec77a7dbb0c42868ad3ec..607167c5023f4d8cd7e978cf09597168cd9751a9 100644 (file)
@@ -16532,7 +16532,7 @@ dumpIndexAttach(Archive *fout, IndexAttachInfo *attachinfo)
                                         attachinfo->dobj.name,
                                         attachinfo->dobj.namespace->dobj.name,
                                         NULL,
-                                        "",
+                                        attachinfo->parentIdx->indextable->rolname,
                                         false, "INDEX ATTACH", SECTION_POST_DATA,
                                         q->data, "", NULL,
                                         NULL, 0,