8000 pg_dump: label INDEX ATTACH ArchiveEntries with an owner. · postgrespro/postgres_cluster@0011c5a · GitHub
[go: up one dir, main page]

Skip to content

Commit 0011c5a

Browse files
committed
pg_dump: label INDEX ATTACH ArchiveEntries with an owner.
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
1 parent 0725bf3 commit 0011c5a

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

src/bin/pg_dump/pg_dump.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16747,9 +16747,17 @@ dumpIndexAttach(Archive *fout, IndexAttachInfo *attachinfo)
1674716747
appendPQExpBuffer(q, "ATTACH PARTITION %s;\n",
1674816748
fmtQualifiedDumpable(attachinfo->partitionIdx));
1674916749

16750+
/*
16751+
* There is no point in creating a drop query as the drop is done by
16752+
* index drop. (If you think to change this, see also
16753+
* _printTocEntry().) Although this object doesn't really have
16754+
* ownership as such, set the owner field anyway to ensure that the
16755+
* command is run by the correct role at restore time.
16756+
*/
1675016757
ArchiveEntry(fout, attachinfo->dobj.catId, attachinfo->dobj.dumpId,
1675116758
ARCHIVE_OPTS(.tag = attachinfo->dobj.name,
1675216759
.namespace = attachinfo->dobj.namespace->dobj.name,
16760+
.owner = attachinfo->parentIdx->indextable->rolname,
1675316761
.description = "INDEX ATTACH",
1675416762
.section = SECTION_POST_DATA,
1675516763
.createStmt = q->data));

0 commit comments

Comments
 (0)
0