Behave sanely when database name is omitted from command line.
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 23 Apr 2001 23:36:33 +0000 (23:36 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 23 Apr 2001 23:36:33 +0000 (23:36 +0000)
src/bin/pg_dump/pg_dump.c

index 1eb0ff95c29f6fcb2cbe94efcaac61ce8ce5f7f2..3d8eb7b1ff069bad1d9ca3db3d1a10952b0ebe29 100644 (file)
@@ -22,7 +22,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.203 2001/04/22 21:34:13 tgl Exp $
+ *   $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.204 2001/04/23 23:36:33 tgl Exp $
  *
  * Modifications - 6/10/96 - dave@bensoft.com - version 1.13.dhb
  *
@@ -948,6 +948,19 @@ main(int argc, char **argv)
        exit(1);
    }
 
+   /* Get the target database name */
+   if (optind < argc)
+       dbname = argv[optind];
+   else
+       dbname = getenv("PGDATABASE");
+   if (!dbname)
+   {
+       fprintf(stderr,
+               "%s: no database name specified\n",
+               progname);
+       exit(1);
+   }
+
    if (dataOnly && schemaOnly)
    {
        fprintf(stderr,
@@ -1022,8 +1035,6 @@ main(int argc, char **argv)
    /* Let the archiver know how noisy to be */
    g_fout->verbose = g_verbose;
 
-   dbname = argv[optind];
-
    /*
     * Open the database using the Archiver, so it knows about it. Errors
     * mean death