Index: doc/src/sgml/ref/pg_restore.sgml
===================================================================
RCS file: /projects/cvsroot/pgsql-server/doc/src/sgml/ref/pg_restore.sgml,v
retrieving revision 1.47
diff -c -r1.47 pg_restore.sgml
*** doc/src/sgml/ref/pg_restore.sgml 13 Jul 2004 02:59:49 -0000 1.47
--- doc/src/sgml/ref/pg_restore.sgml 19 Aug 2004 13:22:27 -0000
***************
*** 228,233 ****
--- 228,244 ----
+
+
+
+
+ Restore definition and/or data of named schema only. Not to be
+ confused with the --schema-only option.
+
+
+
+
+
Index: src/bin/pg_dump/pg_backup.h
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/bin/pg_dump/pg_backup.h,v
retrieving revision 1.31
diff -c -r1.31 pg_backup.h
*** src/bin/pg_dump/pg_backup.h 13 Jul 2004 03:00:17 -0000 1.31
--- src/bin/pg_dump/pg_backup.h 19 Aug 2004 13:22:27 -0000
***************
*** 94,99 ****
--- 94,100 ----
char *indexNames;
char *functionNames;
char *tableNames;
+ char *schemaNames;
char *triggerNames;
int useDB;
Index: src/bin/pg_dump/pg_backup_archiver.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/bin/pg_dump/pg_backup_archiver.c,v
retrieving revision 1.92
diff -c -r1.92 pg_backup_archiver.c
*** src/bin/pg_dump/pg_backup_archiver.c 13 Aug 2004 21:37:28 -0000 1.92
--- src/bin/pg_dump/pg_backup_archiver.c 19 Aug 2004 13:22:28 -0000
***************
*** 1927,1932 ****
--- 1927,1940 ----
/* Check if tablename only is wanted */
if (ropt->selTypes)
{
+ if (ropt->schemaNames)
+ {
+ /* No namespace but namespace requested means we will not include it */
+ 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 (!ropt->selTable)
Index: src/bin/pg_dump/pg_restore.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/bin/pg_dump/pg_restore.c,v
retrieving revision 1.59
diff -c -r1.59 pg_restore.c
*** src/bin/pg_dump/pg_restore.c 13 Jul 2004 03:00:17 -0000 1.59
--- src/bin/pg_dump/pg_restore.c 19 Aug 2004 13:22:28 -0000
***************
*** 103,108 ****
--- 103,109 ----
{"no-reconnect", 0, NULL, 'R'},
{"port", 1, NULL, 'p'},
{"password", 0, NULL, 'W'},
+ {"schema", 1, NULL, 'n'},
{"schema-only", 0, NULL, 's'},
{"superuser", 1, NULL, 'S'},
{"table", 1, NULL, 't'},
***************
*** 141,147 ****
}
}
! while ((c = getopt_long(argc, argv, "acCd:f:F:h:iI:lL:Op:P:RsS:t:T:uU:vWxX:",
cmdopts, NULL)) != -1)
{
switch (c)
--- 142,148 ----
}
}
! while ((c = getopt_long(argc, argv, "acCd:f:F:h:iI:lL:n:Op:P:RsS:t:T:uU:vWxX:",
cmdopts, NULL)) != -1)
{
switch (c)
***************
*** 220,225 ****
--- 221,231 ----
opts->tableNames = strdup(optarg);
break;
+ case 'n': /* Dump data for this schema only */
+ opts->selTypes = 1;
+ opts->schemaNames = strdup(optarg);
+ break;
+
case 'u':
opts->requirePassword = true;
opts->username = simple_prompt("User name: ", 100, true);
***************
*** 371,376 ****
--- 377,383 ----
printf(_(" -I, --index=NAME restore named index\n"));
printf(_(" -L, --use-list=FILENAME use specified table of contents for ordering\n"
" output from this file\n"));
+ printf(_(" -n, --schema=NAME restore named schema\n"));
printf(_(" -O, --no-owner do not output commands to set object ownership\n"));
printf(_(" -P, --function=NAME(args)\n"
" restore named function\n"));