Prevent pg_dump from dumping the comment (if any) on the 'public' schema.
authorTom Lane <[email protected]>
Mon, 14 Jan 2008 19:27:41 +0000 (19:27 +0000)
committerTom Lane <[email protected]>
Mon, 14 Jan 2008 19:27:41 +0000 (19:27 +0000)
This is to avoid uselessly requiring superuser permissions to restore
the dump without errors.  Pretty grotty, but no better alternative seems
available, at least not in the near term.

src/bin/pg_dump/pg_backup_archiver.c

index b75ba776945caf90e324e06791e280cc4f443016..a4b442e370b2acc5901336959f1667bda07898e8 100644 (file)
@@ -2528,11 +2528,17 @@ _printTocEntry(ArchiveHandle *AH, TocEntry *te, RestoreOptions *ropt, bool isDat
        /*
         * Avoid dumping the public schema, as it will already be created ...
         * unless we are using --clean mode, in which case it's been deleted and
-        * we'd better recreate it.
+        * we'd better recreate it.  Likewise for its comment, if any.
         */
-       if (!ropt->dropSchema &&
-               strcmp(te->desc, "SCHEMA") == 0 && strcmp(te->tag, "public") == 0)
-               return;
+       if (!ropt->dropSchema)
+       {
+               if (strcmp(te->desc, "SCHEMA") == 0 &&
+                       strcmp(te->tag, "public") == 0)
+                       return;
+               if (strcmp(te->desc, "COMMENT") == 0 &&
+                       strcmp(te->tag, "SCHEMA public") == 0)
+                       return;
+       }
 
        /* Select owner, schema, and tablespace as necessary */
        _becomeOwner(AH, te);