From 029aa97f2d90a2ef97b2c0ca917bea7268392eb1 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter_e@gmx.net>
Date: Sat, 10 Aug 2002 16:57:32 +0000
Subject: [PATCH] Make sure all clients have the same understanding of default
 user name and database.  In particular, make script wrappers understand the
 PGDATABASE environment variable.

---
 doc/src/sgml/ref/createdb.sgml       | 18 ++++++---
 doc/src/sgml/ref/createlang.sgml     |  5 +--
 doc/src/sgml/ref/createuser.sgml     |  8 +---
 doc/src/sgml/ref/dropdb.sgml         |  6 +--
 doc/src/sgml/ref/droplang.sgml       |  5 +--
 doc/src/sgml/ref/dropuser.sgml       |  6 +--
 doc/src/sgml/ref/pg_dump.sgml        | 20 ++++------
 doc/src/sgml/ref/pg_restore.sgml     |  4 +-
 doc/src/sgml/ref/vacuumdb.sgml       | 14 +++----
 src/bin/pg_dump/pg_backup_archiver.c | 56 ++--------------------------
 src/bin/pg_dump/pg_backup_archiver.h |  6 +--
 src/bin/pg_dump/pg_backup_db.c       | 32 ++--------------
 src/bin/pg_dump/pg_dump.c            | 13 ++-----
 src/bin/pg_dump/pg_restore.c         |  4 +-
 src/bin/psql/help.c                  | 14 ++++---
 src/bin/scripts/createdb             |  6 ++-
 src/bin/scripts/createlang.sh        |  6 ++-
 src/bin/scripts/droplang             |  6 ++-
 src/bin/scripts/vacuumdb             |  6 ++-
 19 files changed, 74 insertions(+), 161 deletions(-)

diff --git a/doc/src/sgml/ref/createdb.sgml b/doc/src/sgml/ref/createdb.sgml
index d0849388cd5..9e0de5572c3 100644
--- a/doc/src/sgml/ref/createdb.sgml
+++ b/doc/src/sgml/ref/createdb.sgml
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/createdb.sgml,v 1.27 2002/07/28 15:22:20 petere Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/createdb.sgml,v 1.28 2002/08/10 16:57:31 petere Exp $
 PostgreSQL documentation
 -->
 
@@ -237,6 +237,16 @@ PostgreSQL documentation
   <title>Environment</title>
 
   <variablelist>
+   <varlistentry>
+    <term><envar>PGDATABASE</envar></term>
+    <listitem>
+     <para>
+      If set, the name of the database to create, unless overridden on
+      the command line.
+     </para>
+    </listitem>
+   </varlistentry>
+
    <varlistentry>
     <term><envar>PGHOST</envar></term>
     <term><envar>PGPORT</envar></term>
@@ -246,7 +256,7 @@ PostgreSQL documentation
      <para>
       Default connection parameters.  <envar>PGUSER</envar> also
       determines the name of the database to create, if it is not
-      specified in the command line.
+      specified on the command line or by <envar>PGDATABASE</envar>.
      </para>
     </listitem>
    </varlistentry>
@@ -257,7 +267,6 @@ PostgreSQL documentation
  <refsect1 id="R1-APP-CREATEDB-2">
   <title>Examples</title>
 
-  <informalexample>
    <para>
     To create the database <literal>demo</literal> using the default
     database server:
@@ -268,9 +277,7 @@ PostgreSQL documentation
     The response is the same as you would have gotten from running the
     <command>CREATE DATABASE</command> <acronym>SQL</acronym> command.
    </para>
-  </informalexample>
 
-  <informalexample>
    <para>
     To create the database <literal>demo</literal> using the
     server on host <literal>eden</>, port 5000, using the
@@ -282,7 +289,6 @@ PostgreSQL documentation
 <computeroutput>CREATE DATABASE</computeroutput>
 </screen>
    </para>
-  </informalexample>
  </refsect1>
 
 
diff --git a/doc/src/sgml/ref/createlang.sgml b/doc/src/sgml/ref/createlang.sgml
index 7ad26ae82e9..b454374deb2 100644
--- a/doc/src/sgml/ref/createlang.sgml
+++ b/doc/src/sgml/ref/createlang.sgml
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/createlang.sgml,v 1.25 2002/07/28 15:22:20 petere Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/createlang.sgml,v 1.26 2002/08/10 16:57:31 petere Exp $
 PostgreSQL documentation
 -->
 
@@ -168,6 +168,7 @@ PostgreSQL documentation
 
   <variablelist>
    <varlistentry>
+    <term><envar>PGDATABASE</envar></term>
     <term><envar>PGHOST</envar></term>
     <term><envar>PGPORT</envar></term>
     <term><envar>PGUSER</envar></term>
@@ -214,7 +215,6 @@ PostgreSQL documentation
  <refsect1>
   <title>Examples</title>
 
-  <informalexample>
    <para>
     To install <literal>pltcl</literal> into the database
     <literal>template1</literal>:
@@ -222,7 +222,6 @@ PostgreSQL documentation
 <prompt>$ </prompt><userinput>createlang pltcl template1</userinput>
 </screen>
    </para>
-  </informalexample>
  </refsect1>
 
  <refsect1>
diff --git a/doc/src/sgml/ref/createuser.sgml b/doc/src/sgml/ref/createuser.sgml
index d4be6e7b25d..1576062aff0 100644
--- a/doc/src/sgml/ref/createuser.sgml
+++ b/doc/src/sgml/ref/createuser.sgml
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/createuser.sgml,v 1.26 2002/07/28 15:22:20 petere Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/createuser.sgml,v 1.27 2002/08/10 16:57:31 petere Exp $
 PostgreSQL documentation
 -->
 
@@ -128,7 +128,7 @@ PostgreSQL documentation
       <listitem>
        <para>
 	The new user is allowed to create other users.
-	(Note: actually, this makes the new user a <firstterm>superuser</>.
+	(Note: Actually, this makes the new user a <firstterm>superuser</>.
 	The option is poorly named.)
        </para>
       </listitem>
@@ -264,7 +264,6 @@ PostgreSQL documentation
  <refsect1>
   <title>Examples</title>
 
-  <informalexample>
    <para>
     To create a user <literal>joe</literal> on the default database
     server:
@@ -275,9 +274,7 @@ PostgreSQL documentation
 <computeroutput>CREATE USER</computeroutput>
 </screen>
    </para>
-  </informalexample>
 
-  <informalexample>
    <para>
     To create the same user <literal>joe</literal> using the
     server on host <literal>eden</>, port 5000, avoiding the prompts and
@@ -288,7 +285,6 @@ PostgreSQL documentation
 <computeroutput>CREATE USER</computeroutput>
 </screen>
    </para>
-  </informalexample>
  </refsect1>
 
 
diff --git a/doc/src/sgml/ref/dropdb.sgml b/doc/src/sgml/ref/dropdb.sgml
index e2fd2e3eccf..aaecbf821ce 100644
--- a/doc/src/sgml/ref/dropdb.sgml
+++ b/doc/src/sgml/ref/dropdb.sgml
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/dropdb.sgml,v 1.16 2002/07/28 15:22:20 petere Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/dropdb.sgml,v 1.17 2002/08/10 16:57:31 petere Exp $
 PostgreSQL documentation
 -->
 
@@ -191,7 +191,6 @@ PostgreSQL documentation
  <refsect1 id="R1-APP-DROPDB-2">
   <title>Examples</title>
 
-  <informalexample>
    <para>
     To destroy the database <literal>demo</literal> on the default
     database server:
@@ -200,9 +199,7 @@ PostgreSQL documentation
 <computeroutput>DROP DATABASE</computeroutput>
 </screen>
    </para>
-  </informalexample>
 
-  <informalexample>
    <para>
     To destroy the database <literal>demo</literal> using the
     server on host <literal>eden</literal>, port 5000, with verification and a peek
@@ -215,7 +212,6 @@ Are you sure? (y/n) </computeroutput><userinput>y</userinput>
 DROP DATABASE</computeroutput>
 </screen>
    </para>
-  </informalexample>
  </refsect1>
 
 
diff --git a/doc/src/sgml/ref/droplang.sgml b/doc/src/sgml/ref/droplang.sgml
index 186af6e2a09..d6f14cfbcae 100644
--- a/doc/src/sgml/ref/droplang.sgml
+++ b/doc/src/sgml/ref/droplang.sgml
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/droplang.sgml,v 1.19 2002/07/28 15:22:20 petere Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/droplang.sgml,v 1.20 2002/08/10 16:57:31 petere Exp $
 PostgreSQL documentation
 -->
 
@@ -157,6 +157,7 @@ PostgreSQL documentation
 
   <variablelist>
    <varlistentry>
+    <term><envar>PGDATABASE</envar></term>
     <term><envar>PGHOST</envar></term>
     <term><envar>PGPORT</envar></term>
     <term><envar>PGUSER</envar></term>
@@ -196,14 +197,12 @@ PostgreSQL documentation
  <refsect1>
   <title>Examples</title>
 
-  <informalexample>
    <para>
     To remove <literal>pltcl</literal>:
 <screen>
 <prompt>$ </prompt><userinput>droplang pltcl dbname</userinput>
 </screen>
    </para>
-  </informalexample>
  </refsect1>
 
  <refsect1>
diff --git a/doc/src/sgml/ref/dropuser.sgml b/doc/src/sgml/ref/dropuser.sgml
index 5d45347ee1c..9fdd3c72d3b 100644
--- a/doc/src/sgml/ref/dropuser.sgml
+++ b/doc/src/sgml/ref/dropuser.sgml
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/dropuser.sgml,v 1.19 2002/07/28 15:22:20 petere Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/dropuser.sgml,v 1.20 2002/08/10 16:57:31 petere Exp $
 PostgreSQL documentation
 -->
 
@@ -181,7 +181,6 @@ PostgreSQL documentation
  <refsect1>
   <title>Examples</title>
 
-  <informalexample>
    <para>
     To remove user <literal>joe</literal> from the default database
     server:
@@ -190,9 +189,7 @@ PostgreSQL documentation
 <computeroutput>DROP USER</computeroutput>
 </screen>
    </para>
-  </informalexample>
 
-  <informalexample>
    <para>
     To remove user <literal>joe</literal> using the postmaster on host
     <literal>eden</literal>, port 5000, with verification and a peek at the underlying
@@ -205,7 +202,6 @@ Are you sure? (y/n) </computeroutput><userinput>y</userinput>
 DROP USER</computeroutput>
 </screen>
    </para>
-  </informalexample>
  </refsect1>
 
 
diff --git a/doc/src/sgml/ref/pg_dump.sgml b/doc/src/sgml/ref/pg_dump.sgml
index 7969489f11c..2f5085a52d5 100644
--- a/doc/src/sgml/ref/pg_dump.sgml
+++ b/doc/src/sgml/ref/pg_dump.sgml
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_dump.sgml,v 1.46 2002/07/28 15:22:20 petere Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_dump.sgml,v 1.47 2002/08/10 16:57:31 petere Exp $
 PostgreSQL documentation
 -->
 
@@ -43,7 +43,7 @@ PostgreSQL documentation
    <arg>-p <replaceable>port</replaceable></arg>
    <arg>-U <replaceable>username</replaceable></arg>
    <arg>-W</arg>
-   <arg choice="plain"><replaceable>dbname</replaceable></arg>
+   <arg><replaceable>dbname</replaceable></arg>
   </cmdsynopsis>
  </refsynopsisdiv>
 
@@ -126,7 +126,10 @@ PostgreSQL documentation
       <term><replaceable class="parameter">dbname</replaceable></term>
       <listitem>
        <para>
-	Specifies the name of the database to be dumped.
+	Specifies the name of the database to be dumped.  If this is
+	not specified, the environment variable
+	<envar>PGDATABASE</envar> is used.  If that is not set, the
+	user name specified for the connection is used.
        </para>
       </listitem>
      </varlistentry>
@@ -562,7 +565,7 @@ PostgreSQL documentation
       <term><option>-U <replaceable>username</replaceable></option></term>
       <listitem>
        <para>
-        Connect as the given user.
+        Connect as the given user
        </para>
       </listitem>
      </varlistentry>
@@ -588,15 +591,6 @@ PostgreSQL documentation
   <variablelist>
    <varlistentry>
     <term><envar>PGDATABASE</envar></term>
-
-    <listitem>
-     <para>
-      Database to dump, unless overridden on the command line.
-     </para>
-    </listitem>
-   </varlistentry>
-
-   <varlistentry>
     <term><envar>PGHOST</envar></term>
     <term><envar>PGPORT</envar></term>
     <term><envar>PGUSER</envar></term>
diff --git a/doc/src/sgml/ref/pg_restore.sgml b/doc/src/sgml/ref/pg_restore.sgml
index e89d76bbc1b..7f5432fc7ae 100644
--- a/doc/src/sgml/ref/pg_restore.sgml
+++ b/doc/src/sgml/ref/pg_restore.sgml
@@ -1,4 +1,4 @@
-<!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_restore.sgml,v 1.29 2002/07/28 15:22:20 petere Exp $ -->
+<!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_restore.sgml,v 1.30 2002/08/10 16:57:31 petere Exp $ -->
 
 <refentry id="APP-PGRESTORE">
  <docinfo>
@@ -475,7 +475,7 @@
       <term><option>-U <replaceable>username</replaceable></option></term>
       <listitem>
        <para>
-        Connect as the given user.
+        Connect as the given user
        </para>
       </listitem>
      </varlistentry>
diff --git a/doc/src/sgml/ref/vacuumdb.sgml b/doc/src/sgml/ref/vacuumdb.sgml
index 37debc1b845..f29eabce1b4 100644
--- a/doc/src/sgml/ref/vacuumdb.sgml
+++ b/doc/src/sgml/ref/vacuumdb.sgml
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/vacuumdb.sgml,v 1.22 2002/07/28 15:22:21 petere Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/vacuumdb.sgml,v 1.23 2002/08/10 16:57:31 petere Exp $
 PostgreSQL documentation
 -->
 
@@ -75,6 +75,11 @@ PostgreSQL documentation
       <listitem>
        <para>
 	Specifies the name of the database to be cleaned or analyzed.
+	If this is not specified and <option>-a</option> (or
+	<option>--all</option>) is not used, the database name is read
+	from the environment variable <envar>PGDATABASE</envar>.  If
+	that is not set, the user name specified for the connection is
+	used.
        </para>
       </listitem>
      </varlistentry>
@@ -251,6 +256,7 @@ PostgreSQL documentation
 
   <variablelist>
    <varlistentry>
+    <term><envar>PGDATABASE</envar></term>
     <term><envar>PGHOST</envar></term>
     <term><envar>PGPORT</envar></term>
     <term><envar>PGUSER</envar></term>
@@ -268,16 +274,13 @@ PostgreSQL documentation
  <refsect1>
   <title>Examples</title>
 
-  <informalexample>
    <para>
     To clean the database <literal>test</literal>:
 <screen>
 <prompt>$ </prompt><userinput>vacuumdb test</userinput>
 </screen>
    </para>
-  </informalexample>
 
-  <informalexample>
    <para>
     To clean and analyze for the optimizer a database named
     <literal>bigdb</literal>:
@@ -285,9 +288,7 @@ PostgreSQL documentation
 <prompt>$ </prompt><userinput>vacuumdb --analyze bigdb</userinput>
 </screen>
    </para>
-  </informalexample>
 
-  <informalexample>
    <para>
     To clean a single table
     <literal>foo</literal> in a database named
@@ -297,7 +298,6 @@ PostgreSQL documentation
 <prompt>$ </prompt><userinput>vacuumdb --analyze --verbose --table 'foo(bar)' xyzzy</userinput>
 </screen>
    </para>
-  </informalexample>
 
  </refsect1>
 
diff --git a/src/bin/pg_dump/pg_backup_archiver.c b/src/bin/pg_dump/pg_backup_archiver.c
index 3f5b5a503e9..b058500e862 100644
--- a/src/bin/pg_dump/pg_backup_archiver.c
+++ b/src/bin/pg_dump/pg_backup_archiver.c
@@ -11,61 +11,11 @@
  *	as this notice is not removed.
  *
  *	The author is not responsible for loss or damages that may
- *	result from it's use.
+ *	result from its use.
  *
  *
  * IDENTIFICATION
- *		$Header: /cvsroot/pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.52 2002/07/04 15:35:07 momjian Exp $
- *
- * Modifications - 28-Jun-2000 - pjw@rhyme.com.au
- *
- *		Initial version.
- *
- * Modifications - 31-Jul-2000 - pjw@rhyme.com.au (1.46, 1.47)
- *		Fixed version number initialization in _allocAH (pg_backup_archiver.c)
- *
- *
- * Modifications - 30-Oct-2000 - pjw@rhyme.com.au
- *		Added {Start,End}RestoreBlobs to allow extended TX during BLOB restore.
- *
- * Modifications - 04-Jan-2001 - pjw@rhyme.com.au
- *	  - strdup() the current user just in case it's deallocated from it's TOC
- *		entry. Should *never* happen, but that's what they said about the
- *		Titanic...
- *
- *	  - Check results of IO routines more carefully.
- *
- * Modifications - 27-Jan-2001 - pjw@rhyme.com.au
- *	  - When dropping the schema, reconnect as owner of each object.
- *
- * Modifications - 6-Mar-2001 - pjw@rhyme.com.au
- *	  - Only disable triggers in DataOnly (or implied data-only) restores.
- *
- * Modifications - 31-Mar-2001 - pjw@rhyme.com.au
- *
- *	  - Rudimentary support for dependencies in archives. Current implementation
- *		uses dependencies to modify the OID used in sorting TOC entries.
- *		This will NOT handle multi-level dependencies, but will manage simple
- *		relationships like UDTs & their functions.
- *
- *	  - Treat OIDs with more respect (avoid using ints, use macros for
- *		conversion & comparison).
- *
- * Modifications - 10-May-2001 - pjw@rhyme.com.au
- *	  - Treat SEQUENCE SET TOC entries as data entries rather than schema
- *		entries.
- *	  - Make allowance for data entries that did not have a data dumper
- *		routine (eg. SEQUENCE SET)
- *
- * Modifications - 01-Nov-2001 - pjw@rhyme.com.au
- *	  - Fix handling of {data/schema}-only restores when using a full
- *		backup file; prior version was restoring schema in data-only
- *		restores. Added enum to make code easier to understand.
- *
- * Modifications - 18-Jan-2002 - pjw@rhyme.com.au
- *	  - Modified _tocEntryRequired to handle '<Init>/Max OID' as a special
- *		case (ie. as a DATA item) as per bugs reported by Bruce Momjian
- *		around 17-Jan-2002.
+ *		$Header: /cvsroot/pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.53 2002/08/10 16:57:31 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -2263,7 +2213,7 @@ WriteHead(ArchiveHandle *AH)
 	WriteInt(AH, crtm.tm_mon);
 	WriteInt(AH, crtm.tm_year);
 	WriteInt(AH, crtm.tm_isdst);
-	WriteStr(AH, AH->dbname);
+	WriteStr(AH, PQdb(AH->connection));
 }
 
 void
diff --git a/src/bin/pg_dump/pg_backup_archiver.h b/src/bin/pg_dump/pg_backup_archiver.h
index 90c126d8fff..d6e9036692e 100644
--- a/src/bin/pg_dump/pg_backup_archiver.h
+++ b/src/bin/pg_dump/pg_backup_archiver.h
@@ -17,7 +17,7 @@
  *
  *
  * IDENTIFICATION
- *		$Header: /cvsroot/pgsql/src/bin/pg_dump/pg_backup_archiver.h,v 1.44 2002/07/04 15:35:07 momjian Exp $
+ *		$Header: /cvsroot/pgsql/src/bin/pg_dump/pg_backup_archiver.h,v 1.45 2002/08/10 16:57:31 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -195,11 +195,7 @@ typedef struct _archiveHandle
 	CustomOutPtr CustomOutPtr;	/* Alternate script output routine */
 
 	/* Stuff for direct DB connection */
-	char	   *username;
-	char	   *dbname;			/* Name of db for connection */
 	char	   *archdbname;		/* DB name *read* from archive */
-	char	   *pghost;
-	char	   *pgport;
 	bool		requirePassword;
 	PGconn	   *connection;
 	PGconn	   *blobConnection; /* Connection for BLOB xref */
diff --git a/src/bin/pg_dump/pg_backup_db.c b/src/bin/pg_dump/pg_backup_db.c
index a50f71bcaae..03c382d14d8 100644
--- a/src/bin/pg_dump/pg_backup_db.c
+++ b/src/bin/pg_dump/pg_backup_db.c
@@ -5,7 +5,7 @@
  *	Implements the basic DB functions used by the archiver.
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_backup_db.c,v 1.35 2002/07/06 20:12:30 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_backup_db.c,v 1.36 2002/08/10 16:57:31 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -129,10 +129,6 @@ ReconnectToServer(ArchiveHandle *AH, const char *dbname, const char *username)
 	PQfinish(AH->connection);
 	AH->connection = newConn;
 
-	free(AH->username);
-	AH->username = strdup(newusername);
-	/* XXX Why don't we update AH->dbname? */
-
 	/* don't assume we still know the output schema */
 	if (AH->currSchema)
 		free(AH->currSchema);
@@ -241,26 +237,6 @@ ConnectDatabase(Archive *AHX,
 	if (AH->connection)
 		die_horribly(AH, modulename, "already connected to a database\n");
 
-	if (!dbname && !(dbname = getenv("PGDATABASE")))
-		die_horribly(AH, modulename, "no database name specified\n");
-
-	AH->dbname = strdup(dbname);
-
-	if (pghost != NULL)
-		AH->pghost = strdup(pghost);
-	else
-		AH->pghost = NULL;
-
-	if (pgport != NULL)
-		AH->pgport = strdup(pgport);
-	else
-		AH->pgport = NULL;
-
-	if (username != NULL)
-		AH->username = strdup(username);
-	else
-		AH->username = NULL;
-
 	if (reqPwd)
 	{
 		password = simple_prompt("Password: ", 100, false);
@@ -278,8 +254,8 @@ ConnectDatabase(Archive *AHX,
 	do
 	{
 		need_pass = false;
-		AH->connection = PQsetdbLogin(AH->pghost, AH->pgport, NULL, NULL,
-									  AH->dbname, AH->username, password);
+		AH->connection = PQsetdbLogin(pghost, pgport, NULL, NULL,
+									  dbname, username, password);
 
 		if (!AH->connection)
 			die_horribly(AH, modulename, "failed to connect to database\n");
@@ -302,7 +278,7 @@ ConnectDatabase(Archive *AHX,
 	/* check to see that the backend connection was successfully made */
 	if (PQstatus(AH->connection) == CONNECTION_BAD)
 		die_horribly(AH, modulename, "connection to database \"%s\" failed: %s",
-					 AH->dbname, PQerrorMessage(AH->connection));
+					 PQdb(AH->connection), PQerrorMessage(AH->connection));
 
 	/* check for version mismatch */
 	_check_database_version(AH, ignoreVersion);
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index 63a82229fc5..0397320a735 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.280 2002/08/04 05:03:29 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.281 2002/08/10 16:57:31 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -480,16 +480,9 @@ main(int argc, char **argv)
 		exit(1);
 	}
 
-	/* Get the target database name */
+	/* Get database name from command line */
 	if (optind < argc)
 		dbname = argv[optind];
-	else
-		dbname = getenv("PGDATABASE");
-	if (!dbname)
-	{
-		write_msg(NULL, "no database name specified\n");
-		exit(1);
-	}
 
 	if (dataOnly && schemaOnly)
 	{
@@ -588,7 +581,7 @@ main(int argc, char **argv)
 	if (g_fout->remoteVersion < 70300)
 	{
 		if (g_fout->remoteVersion >= 70100)
-			g_last_builtin_oid = findLastBuiltinOid_V71(dbname);
+			g_last_builtin_oid = findLastBuiltinOid_V71(PQdb(((ArchiveHandle *)g_conn)->connection));
 		else
 			g_last_builtin_oid = findLastBuiltinOid_V70();
 		if (g_verbose)
diff --git a/src/bin/pg_dump/pg_restore.c b/src/bin/pg_dump/pg_restore.c
index c819154f545..319af0a9876 100644
--- a/src/bin/pg_dump/pg_restore.c
+++ b/src/bin/pg_dump/pg_restore.c
@@ -30,11 +30,11 @@
  *		as this notice is not removed.
  *
  *	The author is not responsible for loss or damages that may
- *	result from it's use.
+ *	result from its use.
  *
  *
  * IDENTIFICATION
- *		$Header: /cvsroot/pgsql/src/bin/pg_dump/pg_restore.c,v 1.37 2002/07/11 02:00:14 momjian Exp $
+ *		$Header: /cvsroot/pgsql/src/bin/pg_dump/pg_restore.c,v 1.38 2002/08/10 16:57:32 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
diff --git a/src/bin/psql/help.c b/src/bin/psql/help.c
index 592a8af3fbc..02d76039752 100644
--- a/src/bin/psql/help.c
+++ b/src/bin/psql/help.c
@@ -3,7 +3,7 @@
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/help.c,v 1.52 2002/07/15 01:56:25 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/help.c,v 1.53 2002/08/10 16:57:32 petere Exp $
  */
 #include "postgres_fe.h"
 #include "print.h"
@@ -58,7 +58,7 @@ usage(void)
 #endif
 
 	/* Find default user, in case we need it. */
-	user = getenv("USER");
+	user = getenv("PGUSER");
 	if (!user)
 	{
 #ifndef WIN32
@@ -70,9 +70,13 @@ usage(void)
 			psql_error("could not get current user name: %s\n", strerror(errno));
 			exit(EXIT_FAILURE);
 		}
-#else
-		user = "?";
-#endif
+#else /* WIN32 */
+		char		buf[128];
+		DWORD		bufsize = sizeof(buf) - 1;
+
+		if (GetUserName(buf, &bufsize))
+			user = buf;
+#endif /* WIN32 */
 	}
 
 /* If this " is the start of the string then it ought to end there to fit in 80 columns >> " */
diff --git a/src/bin/scripts/createdb b/src/bin/scripts/createdb
index 3087688a3ad..639de5476c1 100644
--- a/src/bin/scripts/createdb
+++ b/src/bin/scripts/createdb
@@ -12,7 +12,7 @@
 #
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createdb,v 1.23 2002/06/20 20:29:42 momjian Exp $
+#    $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createdb,v 1.24 2002/08/10 16:57:32 petere Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -166,7 +166,9 @@ then
 fi
 
 if [ -z "$dbname" ]; then
-        if [ "$PGUSER" ]; then
+        if [ "$PGDATABASE" ]; then
+                dbname="$PGDATABASE"
+        elif [ "$PGUSER" ]; then
                 dbname="$PGUSER"
         else
                 dbname=`${PATHNAME}pg_id -u -n`
diff --git a/src/bin/scripts/createlang.sh b/src/bin/scripts/createlang.sh
index daca169a0b2..d7a9e98064f 100644
--- a/src/bin/scripts/createlang.sh
+++ b/src/bin/scripts/createlang.sh
@@ -7,7 +7,7 @@
 # Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
 # Portions Copyright (c) 1994, Regents of the University of California
 #
-# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createlang.sh,v 1.36 2002/06/20 20:29:42 momjian Exp $
+# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createlang.sh,v 1.37 2002/08/10 16:57:32 petere Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -147,7 +147,9 @@ fi
 
 
 if [ -z "$dbname" ]; then
-        if [ "$PGUSER" ]; then
+        if [ "$PGDATABASE" ]; then
+                dbname="$PGDATABASE"
+        elif [ "$PGUSER" ]; then
                 dbname="$PGUSER"
         else
                 dbname=`${PATHNAME}pg_id -u -n`
diff --git a/src/bin/scripts/droplang b/src/bin/scripts/droplang
index 94bc7328946..6970c936b7e 100644
--- a/src/bin/scripts/droplang
+++ b/src/bin/scripts/droplang
@@ -7,7 +7,7 @@
 # Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
 # Portions Copyright (c) 1994, Regents of the University of California
 #
-# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/droplang,v 1.23 2002/06/20 20:29:42 momjian Exp $
+# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/droplang,v 1.24 2002/08/10 16:57:32 petere Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -136,7 +136,9 @@ fi
 
 
 if [ -z "$dbname" ]; then
-        if [ "$PGUSER" ]; then
+        if [ "$PGDATABASE" ]; then
+                dbname="$PGDATABASE"
+        elif [ "$PGUSER" ]; then
                 dbname="$PGUSER"
         else
                 dbname=`${PATHNAME}pg_id -u -n`
diff --git a/src/bin/scripts/vacuumdb b/src/bin/scripts/vacuumdb
index bf4ae4594ed..d1c5afc2dd2 100644
--- a/src/bin/scripts/vacuumdb
+++ b/src/bin/scripts/vacuumdb
@@ -12,7 +12,7 @@
 #
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/bin/scripts/Attic/vacuumdb,v 1.22 2002/06/20 20:29:42 momjian Exp $
+#    $Header: /cvsroot/pgsql/src/bin/scripts/Attic/vacuumdb,v 1.23 2002/08/10 16:57:32 petere Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -156,7 +156,9 @@ if [ "$alldb" ]; then
 	dbname=`${PATHNAME}psql $PSQLOPT -q -t -A -d template1 -c 'SELECT datname FROM pg_database WHERE datallowconn'`
 
 elif [ -z "$dbname" ]; then
-        if [ "$PGUSER" ]; then
+        if [ "$PGDATABASE" ]; then
+                dbname="$PGDATABASE"
+        elif [ "$PGUSER" ]; then
                 dbname="$PGUSER"
         else
                 dbname=`${PATHNAME}pg_id -u -n`
-- 
GitLab