forced-owner-v1.patch
application/octet-stream
Filename: forced-owner-v1.patch
Type: application/octet-stream
Part: 0
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: unified
Series: patch v1
| File | + | − |
|---|---|---|
| src/bin/pg_dump/pg_backup_archiver.c | 21 | 0 |
diff --git a/src/bin/pg_dump/pg_backup_archiver.c b/src/bin/pg_dump/pg_backup_archiver.c
index 7f47a7c..835f323 100644
--- a/src/bin/pg_dump/pg_backup_archiver.c
+++ b/src/bin/pg_dump/pg_backup_archiver.c
@@ -1137,6 +1137,7 @@ SortTocFromFile(Archive *AHX, RestoreOptions *ropt)
int buflen;
char *cmnt;
char *endptr;
+ char *owner = NULL;
DumpId id;
TocEntry *te;
@@ -1172,6 +1173,18 @@ SortTocFromFile(Archive *AHX, RestoreOptions *ropt)
continue;
}
+ /* If there is any string after ID assume it as "forced" owner. */
+ while (*endptr) {
+ if (!isspace(*endptr) && owner == NULL)
+ owner = endptr;
+ else if (isspace(*endptr) && owner != NULL)
+ {
+ *endptr = '\0';
+ break;
+ }
+ *endptr++;
+ }
+
/* Find TOC entry */
te = getTocEntryByDumpId(AH, id);
if (!te)
@@ -1181,6 +1194,14 @@ SortTocFromFile(Archive *AHX, RestoreOptions *ropt)
/* Mark it wanted */
ropt->idWanted[id - 1] = true;
+ /* Alter TOC entry owner, if found "forced" owner. */
+ if (owner != NULL)
+ {
+ write_msg(modulename, "WARNING: forcing owner for %s %s to %s\n", te->desc, te->tag, owner);
+ free(te->owner);
+ te->owner = strdup(owner);
+ }
+
/*
* Move each item to the end of the list as it is selected, so that
* they are placed in the desired order. Any unwanted items will end