From: Tom Lane Date: Fri, 10 Feb 2012 20:22:14 +0000 (-0500) Subject: Fix oversight in pg_dump's handling of extension configuration tables. X-Git-Tag: REL9_1_3~20 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=dd4e0a38781e0c48409f0c092b04b2ec75ed1a7e;p=postgresql Fix oversight in pg_dump's handling of extension configuration tables. If an extension has not been selected to be dumped (perhaps because of a --schema or --table switch), the contents of its configuration tables surely should not get dumped either. Per gripe from Hubert Depesz Lubaczewski. --- diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index 6afb800a6d..fcfc19b966 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -13794,13 +13794,18 @@ getExtensionMembership(ExtensionInfo extinfo[], int numExtensions) */ for (i = 0; i < numExtensions; i++) { - char *extconfig = extinfo[i].extconfig; - char *extcondition = extinfo[i].extcondition; + ExtensionInfo *curext = &(extinfo[i]); + char *extconfig = curext->extconfig; + char *extcondition = curext->extcondition; char **extconfigarray = NULL; char **extconditionarray = NULL; int nconfigitems; int nconditionitems; + /* Tables of not-to-be-dumped extensions shouldn't be dumped */ + if (!curext->dobj.dump) + continue; + if (parsePGArray(extconfig, &extconfigarray, &nconfigitems) && parsePGArray(extcondition, &extconditionarray, &nconditionitems) && nconfigitems == nconditionitems)