Tom Lane wrote:
> Dave Page <[EMAIL PROTECTED]> writes:
>> OK, updated patch attached. This has
> 
>> -E <dbname> or --default-database=<dbname>
> 
> Not sure that "default" database is a particularly helpful adjective;
> why shouldn't the switch just be --database?
> 
> Other than that, looks fine.

Updated to -l, --database to address yours, and Albe's concerns.

Regards, Dave
diff -c -r pgsql.orig/doc/src/sgml/ref/pg_dumpall.sgml 
pgsql.defaultdb/doc/src/sgml/ref/pg_dumpall.sgml
*** pgsql.orig/doc/src/sgml/ref/pg_dumpall.sgml Mon Jan 15 13:26:07 2007
--- pgsql.defaultdb/doc/src/sgml/ref/pg_dumpall.sgml    Tue Jan 16 09:23:19 2007
***************
*** 313,318 ****
--- 313,319 ----
     <variablelist>
       <varlistentry>
        <term>-h <replaceable>host</replaceable></term>
+       <term>--host=<replaceable>host</replaceable></term>
        <listitem>
         <para>
          Specifies the host name of the machine on which the database
***************
*** 323,331 ****
--- 324,346 ----
         </para>
        </listitem>
       </varlistentry>
+        
+      <varlistentry>
+       <term>-l <replaceable>dbname</replaceable></term>
+       <term>--database=<replaceable>dbname</replaceable></term>
+       <listitem>
+        <para>
+          Specifies the name of the database to connect to to dump global
+          objects and discover what other databases should be dumped. If
+          not specified, the <quote>postgres</quote> database will be used,
+          and if that does not exist, <quote>template1</quote> will be used.
+        </para>
+       </listitem>
+      </varlistentry>
  
       <varlistentry>
        <term>-p <replaceable>port</replaceable></term>
+       <term>--port=<replaceable>port</replaceable></term>
        <listitem>
         <para>
          Specifies the TCP port or local Unix domain socket file
***************
*** 338,343 ****
--- 353,359 ----
  
       <varlistentry>
        <term>-U <replaceable>username</replaceable></term>
+       <term>--username=<replaceable>username</replaceable></term>
        <listitem>
         <para>
          Connect as the given user.
***************
*** 347,352 ****
--- 363,369 ----
  
       <varlistentry>
        <term>-W</term>
+           <term>--password</term>
        <listitem>
         <para>
          Force a password prompt.  This should happen automatically if
diff -c -r pgsql.orig/src/bin/pg_dump/pg_dumpall.c 
pgsql.defaultdb/src/bin/pg_dump/pg_dumpall.c
*** pgsql.orig/src/bin/pg_dump/pg_dumpall.c     Mon Jan 15 13:26:07 2007
--- pgsql.defaultdb/src/bin/pg_dump/pg_dumpall.c        Tue Jan 16 09:26:03 2007
***************
*** 75,80 ****
--- 75,81 ----
        char       *pghost = NULL;
        char       *pgport = NULL;
        char       *pguser = NULL;
+       char       *pgdb = NULL;
        bool            force_password = false;
        bool            data_only = false;
        bool            globals_only = false;
***************
*** 96,101 ****
--- 97,103 ----
                {"globals-only", no_argument, NULL, 'g'},
                {"host", required_argument, NULL, 'h'},
                {"ignore-version", no_argument, NULL, 'i'},
+               {"database", required_argument, NULL, 'l'},
                {"oids", no_argument, NULL, 'o'},
                {"no-owner", no_argument, NULL, 'O'},
                {"port", required_argument, NULL, 'p'},
***************
*** 165,171 ****
  
        pgdumpopts = createPQExpBuffer();
  
!       while ((c = getopt_long(argc, argv, "acdDgh:ioOp:rsS:tU:vWxX:", 
long_options, &optindex)) != -1)
        {
                switch (c)
                {
--- 167,173 ----
  
        pgdumpopts = createPQExpBuffer();
  
!       while ((c = getopt_long(argc, argv, "acdDgh:il:oOp:rsS:tU:vWxX:", 
long_options, &optindex)) != -1)
        {
                switch (c)
                {
***************
*** 201,206 ****
--- 203,212 ----
                                ignoreVersion = true;
                                appendPQExpBuffer(pgdumpopts, " -i");
                                break;
+                               
+                       case 'l':
+                               pgdb = optarg;
+                               break;
  
                        case 'o':
                                appendPQExpBuffer(pgdumpopts, " -o");
***************
*** 337,351 ****
        }
  
        /*
!        * First try to connect to database "postgres", and failing that
         * "template1".  "postgres" is the preferred choice for 8.1 and later
         * servers, but it usually will not exist on older ones.
         */
!       conn = connectDatabase("postgres", pghost, pgport, pguser,
                                                   force_password, false);
!       if (!conn)
!               conn = connectDatabase("template1", pghost, pgport, pguser,
!                                                          force_password, 
true);
  
        /*
         * Get the active encoding and the standard_conforming_strings setting, 
so
--- 343,382 ----
        }
  
        /*
!        * If there was a database specified on the command line, use that,
!        * otherwise try to connect to database "postgres", and failing that
         * "template1".  "postgres" is the preferred choice for 8.1 and later
         * servers, but it usually will not exist on older ones.
         */
!       if (pgdb)
!       {
!               conn = connectDatabase(pgdb, pghost, pgport, pguser,
!                                                               force_password, 
false);
!                                                               
!               if (!conn)
!               {
!                       fprintf(stderr, _("%s: could not connect to database 
\"%s\"\n"),
!                                       progname, pgdb);
!                       exit(1);
!               }
!       }
!       else
!       {
!               conn = connectDatabase("postgres", pghost, pgport, pguser,
                                                   force_password, false);
!               if (!conn)
!                       conn = connectDatabase("template1", pghost, pgport, 
pguser,
!                                                                       
force_password, true);
!                               
!               if (!conn)
!               {
!                       fprintf(stderr, _("%s: could not connect to databases 
\"postgres\" or \"template1\". Please specify an alternative database\n"),
!                                       progname);
!                       fprintf(stderr, _("Try \"%s --help\" for more 
information.\n"),
!                                       progname);
!                       exit(1);
!               }
!       }
  
        /*
         * Get the active encoding and the standard_conforming_strings setting, 
so
***************
*** 444,449 ****
--- 475,481 ----
  
        printf(_("\nConnection options:\n"));
        printf(_("  -h, --host=HOSTNAME      database server host or socket 
directory\n"));
+       printf(_("  -l, --database=dbname    specify an alternate default 
database\n"));
        printf(_("  -p, --port=PORT          database server port number\n"));
        printf(_("  -U, --username=NAME      connect as specified database 
user\n"));
        printf(_("  -W, --password           force password prompt (should 
happen automatically)\n"));
---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster

Reply via email to