aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2011-05-30 23:34:34 +0300
committerPeter Eisentraut <peter_e@gmx.net>2011-05-30 23:34:34 +0300
commit3001b76308e9189ff471c54b1823621e03dc1359 (patch)
tree438ac3fbc62091adc70cccddc8b1db98953821bc
parent2367da886d4ab903c7bf5037b363ca10489cdf85 (diff)
downloadpostgresql-3001b76308e9189ff471c54b1823621e03dc1359.tar.gz
postgresql-3001b76308e9189ff471c54b1823621e03dc1359.zip
Suppress foreign data wrappers and foreign servers in partial dumps
This is consistent with the behavior of other global objects such as languages and extensions. Omitting foreign servers also omits the respective user mappings.
-rw-r--r--src/bin/pg_dump/pg_dump.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index f925be1ffaf..3781e599c4f 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -11180,6 +11180,14 @@ dumpForeignDataWrapper(Archive *fout, FdwInfo *fdwinfo)
if (!fdwinfo->dobj.dump || dataOnly)
return;
+ /*
+ * FDWs that belong to an extension are dumped based on their "dump" field.
+ * Otherwise omit them if we are only dumping some specific object.
+ */
+ if (!fdwinfo->dobj.ext_member)
+ if (!include_everything)
+ return;
+
q = createPQExpBuffer();
delq = createPQExpBuffer();
labelq = createPQExpBuffer();
@@ -11255,7 +11263,7 @@ dumpForeignServer(Archive *fout, ForeignServerInfo *srvinfo)
char *fdwname;
/* Skip if not to be dumped */
- if (!srvinfo->dobj.dump || dataOnly)
+ if (!srvinfo->dobj.dump || dataOnly || !include_everything)
return;
q = createPQExpBuffer();