aboutsummaryrefslogtreecommitdiff
path: root/src/bin/pg_dump/pg_dump.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/pg_dump/pg_dump.c')
-rw-r--r--src/bin/pg_dump/pg_dump.c44
1 files changed, 40 insertions, 4 deletions
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index 56067a34ee5..f81439e2036 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -22,7 +22,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.223 2001/08/19 22:17:03 petere Exp $
+ * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.224 2001/08/22 20:23:23 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -167,6 +167,9 @@ help(const char *progname)
" -v, --verbose verbose mode\n"
" -W, --password force password prompt (should happen automatically)\n"
" -x, --no-privileges do not dump privileges (grant/revoke)\n"
+ " -X use-set-session-authorization, --use-set-session-authorization\n"
+ " output SET SESSION AUTHORIZATION commands rather\n"
+ " than \\connect commands\n"
" -Z, --compress {0-9} compression level for compressed formats\n"
));
#else
@@ -198,6 +201,9 @@ help(const char *progname)
" -v verbose mode\n"
" -W force password prompt (should happen automatically)\n"
" -x do not dump privileges (grant/revoke)\n"
+ " -X use-set-session-authorization\n"
+ " output SET SESSION AUTHORIZATION commands rather\n"
+ " than \\connect commands\n"
" -Z {0-9} compression level for compressed formats\n"
));
#endif
@@ -628,6 +634,7 @@ main(int argc, char **argv)
int outputBlobs = 0;
int outputNoOwner = 0;
int outputNoReconnect = 0;
+ static int use_setsessauth = 0;
char *outputSuperuser = NULL;
RestoreOptions *ropt;
@@ -661,7 +668,11 @@ main(int argc, char **argv)
{"no-acl", no_argument, NULL, 'x'},
{"compress", required_argument, NULL, 'Z'},
{"help", no_argument, NULL, '?'},
- {"version", no_argument, NULL, 'V'}
+ {"version", no_argument, NULL, 'V'},
+
+ /* the following options don't have an equivalent short option
+ letter, but are available as '-X long-name' */
+ {"use-set-session-authorization", no_argument, &use_setsessauth, 1}
};
int optindex;
@@ -709,9 +720,9 @@ main(int argc, char **argv)
}
#ifdef HAVE_GETOPT_LONG
- while ((c = getopt_long(argc, argv, "abcCdDf:F:h:inNoOp:RsS:t:uU:vWxzZ:V?", long_options, &optindex)) != -1)
+ while ((c = getopt_long(argc, argv, "abcCdDf:F:h:inNoOp:RsS:t:uU:vWxX:zZ:V?", long_options, &optindex)) != -1)
#else
- while ((c = getopt(argc, argv, "abcCdDf:F:h:inNoOp:RsS:t:uU:vWxzZ:V?-")) != -1)
+ while ((c = getopt(argc, argv, "abcCdDf:F:h:inNoOp:RsS:t:uU:vWxX:zZ:V?-")) != -1)
#endif
{
@@ -851,6 +862,26 @@ main(int argc, char **argv)
aclsSkip = true;
break;
+ /*
+ * Option letters were getting scarce, so I invented
+ * this new scheme: '-X feature' turns on some
+ * feature. Compare to the -f option in GCC. You
+ * should also add an equivalent GNU-style option
+ * --feature. Features that require arguments should
+ * use '-X feature=foo'.
+ */
+ case 'X':
+ if (strcmp(optarg, "use-set-session-authorization")==0)
+ use_setsessauth = 1;
+ else
+ {
+ fprintf(stderr,
+ gettext("%s: invalid -X option -- %s\n"),
+ progname, optarg);
+ fprintf(stderr, gettext("Try '%s --help' for more information.\n"), progname);
+ exit(1);
+ }
+ break;
case 'Z': /* Compression Level */
compressLevel = atoi(optarg);
break;
@@ -863,6 +894,10 @@ main(int argc, char **argv)
progname);
exit(1);
break;
+#else
+ /* This covers the long options equivalent to -X xxx. */
+ case 0:
+ break;
#endif
default:
fprintf(stderr, gettext("Try '%s --help' for more information.\n"), progname);
@@ -1040,6 +1075,7 @@ main(int argc, char **argv)
ropt->create = outputCreate;
ropt->noOwner = outputNoOwner;
ropt->noReconnect = outputNoReconnect;
+ ropt->use_setsessauth = use_setsessauth;
if (outputSuperuser)
ropt->superuser = outputSuperuser;