diff options
-rw-r--r-- | doc/src/sgml/ref/pg_restore.sgml | 12 | ||||
-rw-r--r-- | src/bin/pg_dump/pg_backup.h | 8 | ||||
-rw-r--r-- | src/bin/pg_dump/pg_backup_archiver.c | 10 | ||||
-rw-r--r-- | src/bin/pg_dump/pg_restore.c | 8 |
4 files changed, 21 insertions, 17 deletions
diff --git a/doc/src/sgml/ref/pg_restore.sgml b/doc/src/sgml/ref/pg_restore.sgml index 7c48fcd288f..717da4272dd 100644 --- a/doc/src/sgml/ref/pg_restore.sgml +++ b/doc/src/sgml/ref/pg_restore.sgml @@ -230,7 +230,8 @@ <term><option>--index=<replaceable class="parameter">index</replaceable></option></term> <listitem> <para> - Restore definition of named index only. + Restore definition of named index only. Multiple indexes + may be specified with multiple <option>-I</> switches. </para> </listitem> </varlistentry> @@ -314,7 +315,8 @@ <term><option>--schema=<replaceable class="parameter">schema</replaceable></option></term> <listitem> <para> - Restore only objects that are in the named schema. This can be + Restore only objects that are in the named schema. Multiple schemas + may be specified with multiple <option>-n</> switches. This can be combined with the <option>-t</option> option to restore just a specific table. </para> @@ -348,7 +350,8 @@ <para> Restore the named function only. Be careful to spell the function name and arguments exactly as they appear in the dump file's table - of contents. + of contents. Multiple functions may be specified with multiple + <option>-P</> switches. </para> </listitem> </varlistentry> @@ -413,7 +416,8 @@ <term><option>--trigger=<replaceable class="parameter">trigger</replaceable></option></term> <listitem> <para> - Restore named trigger only. + Restore named trigger only. Multiple triggers may be specified with + multiple <option>-T</> switches. </para> </listitem> </varlistentry> diff --git a/src/bin/pg_dump/pg_backup.h b/src/bin/pg_dump/pg_backup.h index b456f959692..6927968de0a 100644 --- a/src/bin/pg_dump/pg_backup.h +++ b/src/bin/pg_dump/pg_backup.h @@ -129,10 +129,10 @@ typedef struct _restoreOptions int selFunction; int selTrigger; int selTable; - char *indexNames; - char *functionNames; - char *schemaNames; - char *triggerNames; + SimpleStringList indexNames; + SimpleStringList functionNames; + SimpleStringList schemaNames; + SimpleStringList triggerNames; SimpleStringList tableNames; int useDB; diff --git a/src/bin/pg_dump/pg_backup_archiver.c b/src/bin/pg_dump/pg_backup_archiver.c index 5204ceb9643..50619a28157 100644 --- a/src/bin/pg_dump/pg_backup_archiver.c +++ b/src/bin/pg_dump/pg_backup_archiver.c @@ -2456,12 +2456,12 @@ _tocEntryRequired(TocEntry *te, teSection curSection, RestoreOptions *ropt) } /* Check options for selective dump/restore */ - if (ropt->schemaNames) + if (ropt->schemaNames.head != NULL) { /* If no namespace is specified, it means all. */ if (!te->namespace) return 0; - if (strcmp(ropt->schemaNames, te->namespace) != 0) + if (!(simple_string_list_member(&ropt->schemaNames, te->namespace))) return 0; } @@ -2479,21 +2479,21 @@ _tocEntryRequired(TocEntry *te, teSection curSection, RestoreOptions *ropt) { if (!ropt->selIndex) return 0; - if (ropt->indexNames && strcmp(ropt->indexNames, te->tag) != 0) + if (ropt->indexNames.head != NULL && (!(simple_string_list_member(&ropt->indexNames, te->tag)))) return 0; } else if (strcmp(te->desc, "FUNCTION") == 0) { if (!ropt->selFunction) return 0; - if (ropt->functionNames && strcmp(ropt->functionNames, te->tag) != 0) + if (ropt->functionNames.head != NULL && (!(simple_string_list_member(&ropt->functionNames, te->tag)))) return 0; } else if (strcmp(te->desc, "TRIGGER") == 0) { if (!ropt->selTrigger) return 0; - if (ropt->triggerNames && strcmp(ropt->triggerNames, te->tag) != 0) + if (ropt->triggerNames.head != NULL && (!(simple_string_list_member(&ropt->triggerNames, te->tag)))) return 0; } else diff --git a/src/bin/pg_dump/pg_restore.c b/src/bin/pg_dump/pg_restore.c index 985c82621ba..26480033a2d 100644 --- a/src/bin/pg_dump/pg_restore.c +++ b/src/bin/pg_dump/pg_restore.c @@ -196,7 +196,7 @@ main(int argc, char **argv) break; case 'n': /* Dump data for this schema only */ - opts->schemaNames = pg_strdup(optarg); + simple_string_list_append(&opts->schemaNames, optarg); break; case 'O': @@ -213,17 +213,17 @@ main(int argc, char **argv) case 'P': /* Function */ opts->selTypes = 1; opts->selFunction = 1; - opts->functionNames = pg_strdup(optarg); + simple_string_list_append(&opts->functionNames, optarg); break; case 'I': /* Index */ opts->selTypes = 1; opts->selIndex = 1; - opts->indexNames = pg_strdup(optarg); + simple_string_list_append(&opts->indexNames, optarg); break; case 'T': /* Trigger */ opts->selTypes = 1; opts->selTrigger = 1; - opts->triggerNames = pg_strdup(optarg); + simple_string_list_append(&opts->triggerNames, optarg); break; case 's': /* dump schema only */ opts->schemaOnly = 1; |