Re: pg_dumpall default database - Mailing list pgsql-patches

From Dave Page
Subject Re: pg_dumpall default database
Date
Msg-id 45AC9B5B.4060807@postgresql.org
Whole thread Raw
In response to Re: pg_dumpall default database  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: pg_dumpall default database  (Bruce Momjian <bruce@momjian.us>)
List pgsql-patches
Tom Lane wrote:
> Dave Page <dpage@postgresql.org> 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
alternativedatabase\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"));

pgsql-patches by date:

Previous
From: Magnus Hagander
Date:
Subject: Re: O_DIRECT support for Windows
Next
From: "Gurjeet Singh"
Date:
Subject: Re: [PATCHES] [HACKERS] [Fwd: Index Advisor]