postgrespro.git / summary / log / commit / refs
commit 08c9917e24683e36dca35201723e47cdc3fa62db
Author: Michael Paquier <michael@paquier.xyz>
Date: Tue Sep 25 02:03:56 2018 +0000
Ignore publication tables when --no-publications is used
96e1cb4 has added support for --no-publications in pg_dump, pg_dumpall
and pg_restore, but forgot the fact that publication tables also need to
be ignored when this option is used.
Author: Gilles Darold
Reviewed-by: Michael Paquier
Discussion: https://postgr.es/m/3f48e812-b0fa-388e-2043-9a176bdee27e@dalibo.com
Backpatch-through: 10, where publications have been added.
src/bin/pg_dump/pg_backup_archiver.c | 9 +++++++--
src/bin/pg_dump/pg_dump.c | 3 ++-
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 7d1d439ba2..d1faa70d78 100644
--- a/src/bin/pg_dump/pg_backup_archiver.c
+++ b/src/bin/pg_dump/pg_backup_archiver.c
@@ -2919,8 +2919,13 @@ _tocEntryRequired(TocEntry *te, teSection curSection, ArchiveHandle *AH)
if (ropt->no_comments && strcmp(te->desc, "COMMENT") == 0)
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 a security label, maybe ignore it */
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index 0687a81914..c8d01ed4a4 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -3907,6 +3907,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;
@@ -3914,7 +3915,7 @@ getPublicationTables(Archive *fout, TableInfo tblinfo[], int numTables)
j,
ntups;
- if (fout->remoteVersion < 100000)
+ if (dopt->no_publications || fout->remoteVersion < 100000)
return;
query = createPQExpBuffer();
[parent: edb979766054]