diff options
| author | Tom Lane <tgl@sss.pgh.pa.us> | 2006-04-12 22:18:48 +0000 |
|---|---|---|
| committer | Tom Lane <tgl@sss.pgh.pa.us> | 2006-04-12 22:18:48 +0000 |
| commit | 3ef151e0b779c1ac99d8d4acf05ed4db742504ba (patch) | |
| tree | 064d0c66dc0eb63d9f5f217cebd210c7d2a5e238 /src | |
| parent | 1cae920e3209e4f5b1464aaef0c8bee59c53c946 (diff) | |
| download | postgresql-3ef151e0b779c1ac99d8d4acf05ed4db742504ba.tar.gz | |
Fix pg_restore -n option to do what the man page says it does. The
original coding only worked if one of the selTypes restriction options
was also given. Per report from Nick Johnson.
Diffstat (limited to 'src')
| -rw-r--r-- | src/bin/pg_dump/pg_backup_archiver.c | 21 | ||||
| -rw-r--r-- | src/bin/pg_dump/pg_restore.c | 3 |
2 files changed, 12 insertions, 12 deletions
diff --git a/src/bin/pg_dump/pg_backup_archiver.c b/src/bin/pg_dump/pg_backup_archiver.c index 7b883967a3..e9fea7e3a7 100644 --- a/src/bin/pg_dump/pg_backup_archiver.c +++ b/src/bin/pg_dump/pg_backup_archiver.c @@ -15,7 +15,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.125 2006/02/14 23:30:43 tgl Exp $ + * $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.126 2006/04/12 22:18:48 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1908,17 +1908,18 @@ _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) { diff --git a/src/bin/pg_dump/pg_restore.c b/src/bin/pg_dump/pg_restore.c index dc233c9b0e..f9799be68b 100644 --- a/src/bin/pg_dump/pg_restore.c +++ b/src/bin/pg_dump/pg_restore.c @@ -34,7 +34,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/bin/pg_dump/pg_restore.c,v 1.76 2006/02/12 06:11:51 momjian Exp $ + * $PostgreSQL: pgsql/src/bin/pg_dump/pg_restore.c,v 1.77 2006/04/12 22:18:48 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -188,7 +188,6 @@ main(int argc, char **argv) break; case 'n': /* Dump data for this schema only */ - opts->selTypes = 1; opts->schemaNames = strdup(optarg); break; |
