Suppress extensions in partial dumps.
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 25 May 2011 20:26:45 +0000 (16:26 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 25 May 2011 20:27:22 +0000 (16:27 -0400)
We initially had pg_dump emit CREATE EXTENSION commands unconditionally.
However, pg_dump has long been in the habit of not dumping procedural
language definitions when a --schema or --table switch is given.  It seems
appropriate to handle extensions the same way, since like PLs they are SQL
objects that are not in any particular schema.  Per complaint from Adrian
Schreyer.

src/bin/pg_dump/pg_dump.c

index 80bc9a96cad2f1e999ee09a071b0880dc25c816a..f925be1ffafcb7c4efdeadafc19b76d26661a3e8 100644 (file)
@@ -1153,10 +1153,11 @@ selectDumpableDefaultACL(DefaultACLInfo *dinfo)
  * selectDumpableExtension: policy-setting subroutine
  *     Mark an extension as to be dumped or not
  *
- * Normally, we just dump all extensions.  However, in binary-upgrade mode
- * it's necessary to skip built-in extensions, since we assume those will
- * already be installed in the target database.  We identify such extensions
- * by their having OIDs in the range reserved for initdb.
+ * Normally, we dump all extensions, or none of them if include_everything
+ * is false (i.e., a --schema or --table switch was given).  However, in
+ * binary-upgrade mode it's necessary to skip built-in extensions, since we
+ * assume those will already be installed in the target database.  We identify
+ * such extensions by their having OIDs in the range reserved for initdb.
  */
 static void
 selectDumpableExtension(ExtensionInfo *extinfo)
@@ -1164,7 +1165,7 @@ selectDumpableExtension(ExtensionInfo *extinfo)
    if (binary_upgrade && extinfo->dobj.catId.oid < (Oid) FirstNormalObjectId)
        extinfo->dobj.dump = false;
    else
-       extinfo->dobj.dump = true;
+       extinfo->dobj.dump = include_everything;
 }
 
 /*