diff options
| -rw-r--r-- | src/bin/pg_dump/pg_dump.c | 15 | ||||
| -rw-r--r-- | src/bin/pg_dump/pg_dumpall.c | 35 | ||||
| -rw-r--r-- | src/bin/pg_dump/pg_restore.c | 15 | 
3 files changed, 39 insertions, 26 deletions
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index 228c0614809..7a06f9b20a8 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -25,7 +25,7 @@   *	http://archives.postgresql.org/pgsql-bugs/2010-02/msg00187.php   *   * IDENTIFICATION - *	  $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.581.2.1 2010/07/14 21:21:16 tgl Exp $ + *	  $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.581.2.2 2010/08/13 14:38:12 tgl Exp $   *   *-------------------------------------------------------------------------   */ @@ -479,19 +479,20 @@ main(int argc, char **argv)  		}  	} -	if (optind < (argc - 1)) +	/* Get database name from command line */ +	if (optind < argc) +		dbname = argv[optind++]; + +	/* Complain if any arguments remain */ +	if (optind < argc)  	{  		fprintf(stderr, _("%s: too many command-line arguments (first is \"%s\")\n"), -				progname, argv[optind + 1]); +				progname, argv[optind]);  		fprintf(stderr, _("Try \"%s --help\" for more information.\n"),  				progname);  		exit(1);  	} -	/* Get database name from command line */ -	if (optind < argc) -		dbname = argv[optind]; -  	/* --column-inserts implies --inserts */  	if (column_inserts)  		dump_inserts = 1; diff --git a/src/bin/pg_dump/pg_dumpall.c b/src/bin/pg_dump/pg_dumpall.c index 275a22ab88d..85032a94132 100644 --- a/src/bin/pg_dump/pg_dumpall.c +++ b/src/bin/pg_dump/pg_dumpall.c @@ -6,7 +6,7 @@   * Portions Copyright (c) 1994, Regents of the University of California   *   * - * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.134 2010/02/26 02:01:17 momjian Exp $ + * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.134.4.1 2010/08/13 14:38:12 tgl Exp $   *   *-------------------------------------------------------------------------   */ @@ -315,22 +315,7 @@ main(int argc, char *argv[])  		}  	} -	/* Add long options to the pg_dump argument list */ -	if (binary_upgrade) -		appendPQExpBuffer(pgdumpopts, " --binary-upgrade"); -	if (column_inserts) -		appendPQExpBuffer(pgdumpopts, " --column-inserts"); -	if (disable_dollar_quoting) -		appendPQExpBuffer(pgdumpopts, " --disable-dollar-quoting"); -	if (disable_triggers) -		appendPQExpBuffer(pgdumpopts, " --disable-triggers"); -	if (inserts) -		appendPQExpBuffer(pgdumpopts, " --inserts"); -	if (no_tablespaces) -		appendPQExpBuffer(pgdumpopts, " --no-tablespaces"); -	if (use_setsessauth) -		appendPQExpBuffer(pgdumpopts, " --use-set-session-authorization"); - +	/* Complain if any arguments remain */  	if (optind < argc)  	{  		fprintf(stderr, _("%s: too many command-line arguments (first is \"%s\")\n"), @@ -368,6 +353,22 @@ main(int argc, char *argv[])  		exit(1);  	} +	/* Add long options to the pg_dump argument list */ +	if (binary_upgrade) +		appendPQExpBuffer(pgdumpopts, " --binary-upgrade"); +	if (column_inserts) +		appendPQExpBuffer(pgdumpopts, " --column-inserts"); +	if (disable_dollar_quoting) +		appendPQExpBuffer(pgdumpopts, " --disable-dollar-quoting"); +	if (disable_triggers) +		appendPQExpBuffer(pgdumpopts, " --disable-triggers"); +	if (inserts) +		appendPQExpBuffer(pgdumpopts, " --inserts"); +	if (no_tablespaces) +		appendPQExpBuffer(pgdumpopts, " --no-tablespaces"); +	if (use_setsessauth) +		appendPQExpBuffer(pgdumpopts, " --use-set-session-authorization"); +  	/*  	 * If there was a database specified on the command line, use that,  	 * otherwise try to connect to database "postgres", and failing that diff --git a/src/bin/pg_dump/pg_restore.c b/src/bin/pg_dump/pg_restore.c index 4927471dce4..dbdf7acd444 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.102 2010/05/15 21:41:16 tgl Exp $ + *		$PostgreSQL: pgsql/src/bin/pg_dump/pg_restore.c,v 1.102.2.1 2010/08/13 14:38:12 tgl Exp $   *   *-------------------------------------------------------------------------   */ @@ -295,11 +295,22 @@ main(int argc, char **argv)  		}  	} +	/* Get file name from command line */  	if (optind < argc) -		inputFileSpec = argv[optind]; +		inputFileSpec = argv[optind++];  	else  		inputFileSpec = NULL; +	/* Complain if any arguments remain */ +	if (optind < argc) +	{ +		fprintf(stderr, _("%s: too many command-line arguments (first is \"%s\")\n"), +				progname, argv[optind]); +		fprintf(stderr, _("Try \"%s --help\" for more information.\n"), +				progname); +		exit(1); +	} +  	/* Should get at most one of -d and -f, else user is confused */  	if (opts->dbname)  	{  | 
