Skip to content

Commit 269bca7

Browse files
committed
Add --snapfs-snapshot option to pg_dumpall
1 parent c6e1f1f commit 269bca7

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

src/bin/pg_dump/pg_dump.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1188,9 +1188,11 @@ setup_connection(Archive *AH, const char *dumpencoding,
11881188

11891189
if (AH->snapfs_snapshot_id)
11901190
{
1191-
char sql[64];
1192-
sprintf(sql, "select pg_set_backend_snapshot(%s)", AH->snapfs_snapshot_id);
1193-
PQclear(ExecuteSqlQueryForSingleRow((Archive *) AH, sql));
1191+
PQExpBuffer query = createPQExpBuffer();
1192+
1193+
appendPQExpBuffer(query, "select pg_set_backend_snapshot(%s)", AH->snapfs_snapshot_id);
1194+
PQclear(ExecuteSqlQueryForSingleRow((Archive *) AH, query->data));
1195+
destroyPQExpBuffer(query);
11941196
}
11951197
}
11961198

src/bin/pg_dump/pg_dumpall.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ main(int argc, char *argv[])
139139
{"no-sync", no_argument, NULL, 4},
140140
{"no-unlogged-table-data", no_argument, &no_unlogged_table_data, 1},
141141
{"on-conflict-do-nothing", no_argument, &on_conflict_do_nothing, 1},
142+
{"snapfs-snapshot", required_argument, NULL, 5},
142143

143144
{NULL, 0, NULL, 0}
144145
};
@@ -318,6 +319,11 @@ main(int argc, char *argv[])
318319
appendPQExpBufferStr(pgdumpopts, " --no-sync");
319320
break;
320321

322+
case 5:
323+
appendPQExpBufferStr(pgdumpopts, " --snapfs-snapshot ");
324+
appendShellString(pgdumpopts, optarg);
325+
break;
326+
321327
default:
322328
fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname);
323329
exit_nicely(1);
@@ -627,6 +633,7 @@ help(void)
627633
printf(_(" --no-unlogged-table-data do not dump unlogged table data\n"));
628634
printf(_(" --on-conflict-do-nothing add ON CONFLICT DO NOTHING to INSERT commands\n"));
629635
printf(_(" --quote-all-identifiers quote all identifiers, even if not key words\n"));
636+
printf(_(" --snapfs-snapshot=SNAPSHOT use given SNAPFS snapshot for the dump\n"));
630637
printf(_(" --use-set-session-authorization\n"
631638
" use SET SESSION AUTHORIZATION commands instead of\n"
632639
" ALTER OWNER commands to set ownership\n"));

0 commit comments

Comments
 (0)