aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bin/pg_dump/pg_backup_archiver.c9
-rw-r--r--src/bin/pg_dump/pg_dump.c3
2 files changed, 9 insertions, 3 deletions
diff --git a/src/bin/pg_dump/pg_backup_archiver.c b/src/bin/pg_dump/pg_backup_archiver.c
index 5cbe6658dbe..a2e2f96986a 100644
--- a/src/bin/pg_dump/pg_backup_archiver.c
+++ b/src/bin/pg_dump/pg_backup_archiver.c
@@ -2837,8 +2837,13 @@ _tocEntryRequired(TocEntry *te, teSection curSection, RestoreOptions *ropt)
if (ropt->aclsSkip && _tocEntryIsACL(te))
return 0;
- /* If it's a publication, maybe ignore it */
- if (ropt->no_publications && strcmp(te->desc, "PUBLICATION") == 0)
+ /*
+ * If it's a publication or a table part of a publication, maybe ignore
+ * it.
+ */
+ if (ropt->no_publications &&
+ (strcmp(te->desc, "PUBLICATION") == 0 ||
+ strcmp(te->desc, "PUBLICATION TABLE") == 0))
return 0;
/* If it's security labels, maybe ignore it */
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index db19f924d80..376b8c7db78 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -3601,6 +3601,7 @@ getPublicationTables(Archive *fout, TableInfo tblinfo[], int numTables)
PQExpBuffer query;
PGresult *res;
PublicationRelInfo *pubrinfo;
+ DumpOptions *dopt = fout->dopt;
int i_tableoid;
int i_oid;
int i_pubname;
@@ -3608,7 +3609,7 @@ getPublicationTables(Archive *fout, TableInfo tblinfo[], int numTables)
j,
ntups;
- if (fout->remoteVersion < 100000)
+ if (dopt->no_publications || fout->remoteVersion < 100000)
return;
query = createPQExpBuffer();