1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-30 21:42:05 +03:00

Add --section option to pg_dump and pg_restore.

Valid values are --pre-data, data and post-data. The option can be
given more than once. --schema-only is equivalent to
--section=pre-data --section=post-data. --data-only is equivalent
to --section=data.

Andrew Dunstan, reviewed by Joachim Wieland and Josh Berkus.
This commit is contained in:
Andrew Dunstan
2011-12-16 19:09:38 -05:00
parent 4b43b48c9f
commit a4cd6abcc9
10 changed files with 184 additions and 6 deletions

View File

@ -17,6 +17,7 @@
#include <ctype.h>
#include "dumputils.h"
#include "pg_backup.h"
#include "parser/keywords.h"
@ -1262,3 +1263,32 @@ exit_horribly(const char *modulename, const char *fmt,...)
exit(1);
}
/*
* Set the bitmask in dumpSections according to the first argument.
* dumpSections is initialised as DUMP_UNSECTIONED by pg_dump and
* pg_restore so they can know if this has even been called.
*/
void
set_section (const char *arg, int *dumpSections)
{
/* if this is the first, clear all the bits */
if (*dumpSections == DUMP_UNSECTIONED)
*dumpSections = 0;
if (strcmp(arg,"pre-data") == 0)
*dumpSections |= DUMP_PRE_DATA;
else if (strcmp(arg,"data") == 0)
*dumpSections |= DUMP_DATA;
else if (strcmp(arg,"post-data") == 0)
*dumpSections |= DUMP_POST_DATA;
else
{
fprintf(stderr, _("%s: unknown section name \"%s\")\n"),
progname, arg);
fprintf(stderr, _("Try \"%s --help\" for more information.\n"),
progname);
exit(1);
}
}