]> granicus.if.org Git - postgresql/commitdiff
Fix pg_restore -n option to do what the man page says it does. The
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 12 Apr 2006 22:19:01 +0000 (22:19 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 12 Apr 2006 22:19:01 +0000 (22:19 +0000)
original coding only worked if one of the selTypes restriction options
was also given.  Per report from Nick Johnson.

src/bin/pg_dump/pg_backup_archiver.c
src/bin/pg_dump/pg_restore.c

index 61b0dee4cbfdd6bb76dd70038a6bea27abfd18a9..aa698e737264f56d105810a5e94a2876df945e21 100644 (file)
@@ -15,7 +15,7 @@
  *
  *
  * IDENTIFICATION
- *             $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.117.2.2 2006/02/05 20:58:57 tgl Exp $
+ *             $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.117.2.3 2006/04/12 22:19:01 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1883,18 +1883,20 @@ _tocEntryRequired(TocEntry *te, RestoreOptions *ropt, bool include_acls)
        if (!ropt->create && strcmp(te->desc, "DATABASE") == 0)
                return 0;
 
-       /* Check if tablename only is wanted */
+       /* Check options for selective dump/restore */
+       if (ropt->schemaNames)
+       {
+               /* If no namespace is specified, it means all. */
+               if (!te->namespace)
+                       return 0;
+               if (strcmp(ropt->schemaNames, te->namespace) != 0)
+                       return 0;
+       }
+
        if (ropt->selTypes)
        {
-               if (ropt->schemaNames)
-               {
-                       /* If no namespace is specified, it means all. */
-                       if (!te->namespace)
-                               return 0;
-                       if (strcmp(ropt->schemaNames, te->namespace) != 0)
-                               return 0;
-               }
-               if ((strcmp(te->desc, "TABLE") == 0) || (strcmp(te->desc, "TABLE DATA") == 0))
+               if (strcmp(te->desc, "TABLE") == 0 ||
+                       strcmp(te->desc, "TABLE DATA") == 0)
                {
                        if (!ropt->selTable)
                                return 0;
index c40ee7bbec08c151dfacc946a624d0a66ebb7624..95c481e89a980bfedd59601e7e2a0833ebcb4b17 100644 (file)
@@ -34,7 +34,7 @@
  *
  *
  * IDENTIFICATION
- *             $PostgreSQL: pgsql/src/bin/pg_dump/pg_restore.c,v 1.73 2005/10/15 02:49:39 momjian Exp $
+ *             $PostgreSQL: pgsql/src/bin/pg_dump/pg_restore.c,v 1.73.2.1 2006/04/12 22:19:01 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -224,7 +224,6 @@ main(int argc, char **argv)
                                break;
 
                        case 'n':                       /* Dump data for this schema only */
-                               opts->selTypes = 1;
                                opts->schemaNames = strdup(optarg);
                                break;