Make sure all clients have the same understanding of default user name
authorPeter Eisentraut
Sat, 10 Aug 2002 16:57:32 +0000 (16:57 +0000)
committerPeter Eisentraut
Sat, 10 Aug 2002 16:57:32 +0000 (16:57 +0000)
and database.  In particular, make script wrappers understand the
PGDATABASE environment variable.

19 files changed:
doc/src/sgml/ref/createdb.sgml
doc/src/sgml/ref/createlang.sgml
doc/src/sgml/ref/createuser.sgml
doc/src/sgml/ref/dropdb.sgml
doc/src/sgml/ref/droplang.sgml
doc/src/sgml/ref/dropuser.sgml
doc/src/sgml/ref/pg_dump.sgml
doc/src/sgml/ref/pg_restore.sgml
doc/src/sgml/ref/vacuumdb.sgml
src/bin/pg_dump/pg_backup_archiver.c
src/bin/pg_dump/pg_backup_archiver.h
src/bin/pg_dump/pg_backup_db.c
src/bin/pg_dump/pg_dump.c
src/bin/pg_dump/pg_restore.c
src/bin/psql/help.c
src/bin/scripts/createdb
src/bin/scripts/createlang.sh
src/bin/scripts/droplang
src/bin/scripts/vacuumdb

index d0849388cd502d9dd1489050b9ef00b7edb2f772..9e0de5572c3893b487a488fe980a7a2aa0720913 100644 (file)
@@ -1,5 +1,5 @@
 
 
@@ -237,6 +237,16 @@ PostgreSQL documentation
   Environment
 
   
+   
+    PGDATABASE
+    
+     
+      If set, the name of the database to create, unless overridden on
+      the command line.
+     
+    
+   
+
    
     PGHOST
     PGPORT
@@ -246,7 +256,7 @@ PostgreSQL documentation
      
       Default connection parameters.  PGUSER 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 PGDATABASE.
      
     
    
@@ -257,7 +267,6 @@ PostgreSQL documentation
  
   Examples
 
-  
    
     To create the database demo using the default
     database server:
@@ -268,9 +277,7 @@ PostgreSQL documentation
     The response is the same as you would have gotten from running the
     CREATE DATABASE SQL command.
    
-  
 
-  
    
     To create the database demo using the
     server on host eden, port 5000, using the
@@ -282,7 +289,6 @@ PostgreSQL documentation
 CREATE DATABASE
 
    
-  
  
 
 
index 7ad26ae82e9299208565556a3a39b67df013fb22..b454374deb2b3fd11da600f17c53a88009aa0b1b 100644 (file)
@@ -1,5 +1,5 @@
 
 
@@ -168,6 +168,7 @@ PostgreSQL documentation
 
   
    
+    PGDATABASE
     PGHOST
     PGPORT
     PGUSER
@@ -214,7 +215,6 @@ PostgreSQL documentation
  
   Examples
 
-  
    
     To install pltcl into the database
     template1:
@@ -222,7 +222,6 @@ PostgreSQL documentation
 createlang pltcl template1
 
    
-  
  
 
  
index d4be6e7b25d2fd700509090e7aeaf62a761e6ba9..1576062aff075c1169129491336475516e8acef8 100644 (file)
@@ -1,5 +1,5 @@
 
 
@@ -128,7 +128,7 @@ PostgreSQL documentation
       
        
    The new user is allowed to create other users.
-   (Note: actually, this makes the new user a superuser.
+   (Note: Actually, this makes the new user a superuser.
    The option is poorly named.)
        
       
@@ -264,7 +264,6 @@ PostgreSQL documentation
  
   Examples
 
-  
    
     To create a user joe on the default database
     server:
@@ -275,9 +274,7 @@ PostgreSQL documentation
 CREATE USER
 
    
-  
 
-  
    
     To create the same user joe using the
     server on host eden, port 5000, avoiding the prompts and
@@ -288,7 +285,6 @@ PostgreSQL documentation
 CREATE USER
 
    
-  
  
 
 
index e2fd2e3eccf99849eedb72e848698c7fc4211b12..aaecbf821cea9b24655afd584c87108a402ebeb8 100644 (file)
@@ -1,5 +1,5 @@
 
 
@@ -191,7 +191,6 @@ PostgreSQL documentation
  
   Examples
 
-  
    
     To destroy the database demo on the default
     database server:
@@ -200,9 +199,7 @@ PostgreSQL documentation
 DROP DATABASE
 
    
-  
 
-  
    
     To destroy the database demo using the
     server on host eden, port 5000, with verification and a peek
@@ -215,7 +212,6 @@ Are you sure? (y/n) y
 DROP DATABASE
 
    
-  
  
 
 
index 186af6e2a09e64705c65b1d08acd8c7f2f7dfe3f..d6f14cfbcae86a49702d1b1dd645c07b60658bf3 100644 (file)
@@ -1,5 +1,5 @@
 
 
@@ -157,6 +157,7 @@ PostgreSQL documentation
 
   
    
+    PGDATABASE
     PGHOST
     PGPORT
     PGUSER
@@ -196,14 +197,12 @@ PostgreSQL documentation
  
   Examples
 
-  
    
     To remove pltcl:
 
 droplang pltcl dbname
 
    
-  
  
 
  
index 5d45347ee1c3aa4a97741ba3be7e69cc495ea82c..9fdd3c72d3b9b5f519246a491c7ea50ce7203667 100644 (file)
@@ -1,5 +1,5 @@
 
 
@@ -181,7 +181,6 @@ PostgreSQL documentation
  
   Examples
 
-  
    
     To remove user joe from the default database
     server:
@@ -190,9 +189,7 @@ PostgreSQL documentation
 DROP USER
 
    
-  
 
-  
    
     To remove user joe using the postmaster on host
     eden, port 5000, with verification and a peek at the underlying
@@ -205,7 +202,6 @@ Are you sure? (y/n) y
 DROP USER
 
    
-  
  
 
 
index 7969489f11c3e54c487b695c168148e73618c8ac..2f5085a52d59e8938bc894c6f418ac7a5963124b 100644 (file)
@@ -1,5 +1,5 @@
 
 
@@ -43,7 +43,7 @@ PostgreSQL documentation
    -p port
    -U username
    -W
-    choice="plain">dbname
+   dbname
   
  
 
@@ -126,7 +126,10 @@ PostgreSQL documentation
       dbname
       
        
-   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
+   PGDATABASE is used.  If that is not set, the
+   user name specified for the connection is used.
        
       
      
@@ -562,7 +565,7 @@ PostgreSQL documentation
       
       
        
-        Connect as the given user.
+        Connect as the given user
        
       
      
@@ -588,15 +591,6 @@ PostgreSQL documentation
   
    
     PGDATABASE
-
-    
-     
-      Database to dump, unless overridden on the command line.
-     
-    
-   
-
-   
     PGHOST
     PGPORT
     PGUSER
index e89d76bbc1b8e1bf2c1c80ba2e19289662cb13ca..7f5432fc7ae129907fe12a4d7a4c11d1a6b02ee7 100644 (file)
@@ -1,4 +1,4 @@
-
+
 
 
  
       
       
        
-        Connect as the given user.
+        Connect as the given user
        
       
      
index 37debc1b84597b80b1ed0f4bb2f754aa58a89584..f29eabce1b43ff46d4800a33216dd61e7d2e6d71 100644 (file)
@@ -1,5 +1,5 @@
 
 
@@ -75,6 +75,11 @@ PostgreSQL documentation
       
        
    Specifies the name of the database to be cleaned or analyzed.
+   If this is not specified and  (or
+   ) is not used, the database name is read
+   from the environment variable PGDATABASE.  If
+   that is not set, the user name specified for the connection is
+   used.
        
       
      
@@ -251,6 +256,7 @@ PostgreSQL documentation
 
   
    
+    PGDATABASE
     PGHOST
     PGPORT
     PGUSER
@@ -268,16 +274,13 @@ PostgreSQL documentation
  
   Examples
 
-  
    
     To clean the database test:
 
 vacuumdb test
 
    
-  
 
-  
    
     To clean and analyze for the optimizer a database named
     bigdb:
@@ -285,9 +288,7 @@ PostgreSQL documentation
 vacuumdb --analyze bigdb
 
    
-  
 
-  
    
     To clean a single table
     foo in a database named
@@ -297,7 +298,6 @@ PostgreSQL documentation
 vacuumdb --analyze --verbose --table 'foo(bar)' xyzzy
 
    
-  
 
  
 
index 3f5b5a503e93030aa0b27fd27eef19df6493362e..b058500e862609f5a79070b177a76cf9eb9a32c8 100644 (file)
  * 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 - [email protected]
- *
- *     Initial version.
- *
- * Modifications - 31-Jul-2000 - [email protected] (1.46, 1.47)
- *     Fixed version number initialization in _allocAH (pg_backup_archiver.c)
- *
- *
- * Modifications - 30-Oct-2000 - [email protected]
- *     Added {Start,End}RestoreBlobs to allow extended TX during BLOB restore.
- *
- * Modifications - 04-Jan-2001 - [email protected]
- *   - 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 - [email protected]
- *   - When dropping the schema, reconnect as owner of each object.
- *
- * Modifications - 6-Mar-2001 - [email protected]
- *   - Only disable triggers in DataOnly (or implied data-only) restores.
- *
- * Modifications - 31-Mar-2001 - [email protected]
- *
- *   - 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 - [email protected]
- *   - 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 - [email protected]
- *   - 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 - [email protected]
- *   - Modified _tocEntryRequired to handle '/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
index 90c126d8fff6ba4c119f232c1c648503bc2dda21..d6e9036692eb6ef60cee66d241a0e26098377903 100644 (file)
@@ -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 */
index a50f71bcaaeca5a24854f3360cd69e8ff7069651..03c382d14d8ff986cba71507e65163073def37a7 100644 (file)
@@ -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);
index 63a82229fc5cf9125efb97ed3e0a94486ba07c17..0397320a73574dc4063be0ba026082badc8d6354 100644 (file)
@@ -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)
index c819154f5459ce938a5606fcca0bdf845759074f..319af0a98769e17e3207886f58400d5596e6fbae 100644 (file)
  *     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 $
  *
  *-------------------------------------------------------------------------
  */
index 592a8af3fbc001880385d670ba35e17ac5327412..02d760397525103a2ba2caf8ae6e15973e57fdc6 100644 (file)
@@ -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 >> " */
index 3087688a3adbf020f17fc86fee6155aab852e063..639de5476c14c10ed9a525f29192de0244aa6c97 100644 (file)
@@ -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`
index daca169a0b24fbcefb6e882c4e4434a7e7077721..d7a9e98064f59cc219a3dab1bf4e0f8d7f9fdcf1 100644 (file)
@@ -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`
index 94bc732894675f7534749637c7a27326a6e0891b..6970c936b7e70a348617eb56e331e187fc09575f 100644 (file)
@@ -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`
index bf4ae4594ed890702ca8911a0a4b1bb1e754acd3..d1c5afc2dd262b41f3543bf4606f87f5de74bc3c 100644 (file)
@@ -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`