summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bin/pg_dump/pg_dump.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index f81ba7334a3..37847834a02 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -16747,9 +16747,17 @@ dumpIndexAttach(Archive *fout, IndexAttachInfo *attachinfo)
appendPQExpBuffer(q, "ATTACH PARTITION %s;\n",
fmtQualifiedDumpable(attachinfo->partitionIdx));
+ /*
+ * There is no point in creating a drop query as the drop is done by
+ * index drop. (If you think to change this, see also
+ * _printTocEntry().) Although this object doesn't really have
+ * ownership as such, set the owner field anyway to ensure that the
+ * command is run by the correct role at restore time.
+ */
ArchiveEntry(fout, attachinfo->dobj.catId, attachinfo->dobj.dumpId,
ARCHIVE_OPTS(.tag = attachinfo->dobj.name,
.namespace = attachinfo->dobj.namespace->dobj.name,
+ .owner = attachinfo->parentIdx->indextable->rolname,
.description = "INDEX ATTACH",
.section = SECTION_POST_DATA,
.createStmt = q->data));