Skip to content

Commit 96e1cb4

Browse files
committed
pg_dump: Add --no-publications option
Author: Michael Paquier <michael.paquier@gmail.com>
1 parent b807f59 commit 96e1cb4

File tree

8 files changed

+49
-1
lines changed

8 files changed

+49
-1
lines changed

doc/src/sgml/ref/pg_dump.sgml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -789,6 +789,15 @@ PostgreSQL documentation
789789
</listitem>
790790
</varlistentry>
791791

792+
<varlistentry>
793+
<term><option>--no-publications</option></term>
794+
<listitem>
795+
<para>
796+
Do not dump publications.
797+
</para>
798+
</listitem>
799+
</varlistentry>
800+
792801
<varlistentry>
793802
<term><option>--no-security-labels</option></term>
794803
<listitem>

doc/src/sgml/ref/pg_dumpall.sgml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,15 @@ PostgreSQL documentation
345345
</listitem>
346346
</varlistentry>
347347

348+
<varlistentry>
349+
<term><option>--no-publications</option></term>
350+
<listitem>
351+
<para>
352+
Do not dump publications.
353+
</para>
354+
</listitem>
355+
</varlistentry>
356+
348357
<varlistentry>
349358
<term><option>--no-security-labels</option></term>
350359
<listitem>

doc/src/sgml/ref/pg_restore.sgml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -581,6 +581,16 @@
581581
</listitem>
582582
</varlistentry>
583583

584+
<varlistentry>
585+
<term><option>--no-publications</option></term>
586+
<listitem>
587+
<para>
588+
Do not output commands to restore publications, even if the archive
589+
contains them.
590+
</para>
591+
</listitem>
592+
</varlistentry>
593+
584594
<varlistentry>
585595
<term><option>--no-security-labels</option></term>
586596
<listitem>

src/bin/pg_dump/pg_backup.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ typedef struct _restoreOptions
7474
int dump_inserts;
7575
int column_inserts;
7676
int if_exists;
77+
int no_publications; /* Skip publication entries */
7778
int no_security_labels; /* Skip security label entries */
7879
int no_subscriptions; /* Skip subscription entries */
7980
int strict_names;
@@ -146,6 +147,7 @@ typedef struct _dumpOptions
146147
int column_inserts;
147148
int if_exists;
148149
int no_security_labels;
150+
int no_publications;
149151
int no_subscriptions;
150152
int no_synchronized_snapshots;
151153
int no_unlogged_table_data;

src/bin/pg_dump/pg_backup_archiver.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ dumpOptionsFromRestoreOptions(RestoreOptions *ropt)
166166

167167
dopt->disable_dollar_quoting = ropt->disable_dollar_quoting;
168168
dopt->dump_inserts = ropt->dump_inserts;
169+
dopt->no_publications = ropt->no_publications;
169170
dopt->no_security_labels = ropt->no_security_labels;
170171
dopt->no_subscriptions = ropt->no_subscriptions;
171172
dopt->lockWaitTimeout = ropt->lockWaitTimeout;
@@ -2792,6 +2793,10 @@ _tocEntryRequired(TocEntry *te, teSection curSection, RestoreOptions *ropt)
27922793
if (ropt->aclsSkip && _tocEntryIsACL(te))
27932794
return 0;
27942795

2796+
/* If it's a publication, maybe ignore it */
2797+
if (ropt->no_publications && strcmp(te->desc, "PUBLICATION") == 0)
2798+
return 0;
2799+
27952800
/* If it's security labels, maybe ignore it */
27962801
if (ropt->no_security_labels && strcmp(te->desc, "SECURITY LABEL") == 0)
27972802
return 0;

src/bin/pg_dump/pg_dump.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -352,6 +352,7 @@ main(int argc, char **argv)
352352
{"snapshot", required_argument, NULL, 6},
353353
{"strict-names", no_argument, &strict_names, 1},
354354
{"use-set-session-authorization", no_argument, &dopt.use_setsessauth, 1},
355+
{"no-publications", no_argument, &dopt.no_publications, 1},
355356
{"no-security-labels", no_argument, &dopt.no_security_labels, 1},
356357
{"no-synchronized-snapshots", no_argument, &dopt.no_synchronized_snapshots, 1},
357358
{"no-unlogged-table-data", no_argument, &dopt.no_unlogged_table_data, 1},
@@ -862,6 +863,7 @@ main(int argc, char **argv)
862863
ropt->use_setsessauth = dopt.use_setsessauth;
863864
ropt->disable_dollar_quoting = dopt.disable_dollar_quoting;
864865
ropt->dump_inserts = dopt.dump_inserts;
866+
ropt->no_publications = dopt.no_publications;
865867
ropt->no_security_labels = dopt.no_security_labels;
866868
ropt->no_subscriptions = dopt.no_subscriptions;
867869
ropt->lockWaitTimeout = dopt.lockWaitTimeout;
@@ -951,6 +953,7 @@ help(const char *progname)
951953
printf(_(" --exclude-table-data=TABLE do NOT dump data for the named table(s)\n"));
952954
printf(_(" --if-exists use IF EXISTS when dropping objects\n"));
953955
printf(_(" --inserts dump data as INSERT commands, rather than COPY\n"));
956+
printf(_(" --no-publications do not dump publications\n"));
954957
printf(_(" --no-security-labels do not dump security label assignments\n"));
955958
printf(_(" --no-subscriptions do not dump subscriptions\n"));
956959
printf(_(" --no-synchronized-snapshots do not use synchronized snapshots in parallel jobs\n"));
@@ -3376,6 +3379,7 @@ dumpPolicy(Archive *fout, PolicyInfo *polinfo)
33763379
void
33773380
getPublications(Archive *fout)
33783381
{
3382+
DumpOptions *dopt = fout->dopt;
33793383
PQExpBuffer query;
33803384
PGresult *res;
33813385
PublicationInfo *pubinfo;
@@ -3390,7 +3394,7 @@ getPublications(Archive *fout)
33903394
int i,
33913395
ntups;
33923396

3393-
if (fout->remoteVersion < 100000)
3397+
if (dopt->no_publications || fout->remoteVersion < 100000)
33943398
return;
33953399

33963400
query = createPQExpBuffer();

src/bin/pg_dump/pg_dumpall.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ static int if_exists = 0;
7474
static int inserts = 0;
7575
static int no_tablespaces = 0;
7676
static int use_setsessauth = 0;
77+
static int no_publications = 0;
7778
static int no_security_labels = 0;
7879
static int no_subscriptions = 0;
7980
static int no_unlogged_table_data = 0;
@@ -129,6 +130,7 @@ main(int argc, char *argv[])
129130
{"quote-all-identifiers", no_argument, &quote_all_identifiers, 1},
130131
{"role", required_argument, NULL, 3},
131132
{"use-set-session-authorization", no_argument, &use_setsessauth, 1},
133+
{"no-publications", no_argument, &no_publications, 1},
132134
{"no-security-labels", no_argument, &no_security_labels, 1},
133135
{"no-subscriptions", no_argument, &no_subscriptions, 1},
134136
{"no-sync", no_argument, NULL, 4},
@@ -385,6 +387,8 @@ main(int argc, char *argv[])
385387
appendPQExpBufferStr(pgdumpopts, " --quote-all-identifiers");
386388
if (use_setsessauth)
387389
appendPQExpBufferStr(pgdumpopts, " --use-set-session-authorization");
390+
if (no_publications)
391+
appendPQExpBufferStr(pgdumpopts, " --no-publications");
388392
if (no_security_labels)
389393
appendPQExpBufferStr(pgdumpopts, " --no-security-labels");
390394
if (no_subscriptions)
@@ -594,6 +598,7 @@ help(void)
594598
printf(_(" --disable-triggers disable triggers during data-only restore\n"));
595599
printf(_(" --if-exists use IF EXISTS when dropping objects\n"));
596600
printf(_(" --inserts dump data as INSERT commands, rather than COPY\n"));
601+
printf(_(" --no-publications do not dump publications\n"));
597602
printf(_(" --no-security-labels do not dump security label assignments\n"));
598603
printf(_(" --no-subscriptions do not dump subscriptions\n"));
599604
printf(_(" --no-sync do not wait for changes to be written safely to disk\n"));

src/bin/pg_dump/pg_restore.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ main(int argc, char **argv)
7171
static int no_data_for_failed_tables = 0;
7272
static int outputNoTablespaces = 0;
7373
static int use_setsessauth = 0;
74+
static int no_publications = 0;
7475
static int no_security_labels = 0;
7576
static int no_subscriptions = 0;
7677
static int strict_names = 0;
@@ -118,6 +119,7 @@ main(int argc, char **argv)
118119
{"section", required_argument, NULL, 3},
119120
{"strict-names", no_argument, &strict_names, 1},
120121
{"use-set-session-authorization", no_argument, &use_setsessauth, 1},
122+
{"no-publications", no_argument, &no_publications, 1},
121123
{"no-security-labels", no_argument, &no_security_labels, 1},
122124
{"no-subscriptions", no_argument, &no_subscriptions, 1},
123125

@@ -356,6 +358,7 @@ main(int argc, char **argv)
356358
opts->noDataForFailedTables = no_data_for_failed_tables;
357359
opts->noTablespace = outputNoTablespaces;
358360
opts->use_setsessauth = use_setsessauth;
361+
opts->no_publications = no_publications;
359362
opts->no_security_labels = no_security_labels;
360363
opts->no_subscriptions = no_subscriptions;
361364

@@ -479,6 +482,7 @@ usage(const char *progname)
479482
printf(_(" --if-exists use IF EXISTS when dropping objects\n"));
480483
printf(_(" --no-data-for-failed-tables do not restore data of tables that could not be\n"
481484
" created\n"));
485+
printf(_(" --no-publications do not restore publications\n"));
482486
printf(_(" --no-security-labels do not restore security labels\n"));
483487
printf(_(" --no-subscriptions do not restore subscriptions\n"));
484488
printf(_(" --no-tablespaces do not restore tablespace assignments\n"));

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy