Don't assume PQdb() will return a valid result from a failed connection.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 1 Oct 2004 17:25:55 +0000 (17:25 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 1 Oct 2004 17:25:55 +0000 (17:25 +0000)
src/bin/pg_dump/pg_backup_db.c

index 360e41b1f998f8f60deccf625e2bed13c4c71837..181414c263af5b5867465fcba53a29e6be94bf1d 100644 (file)
@@ -5,7 +5,7 @@
  * Implements the basic DB functions used by the archiver.
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_db.c,v 1.58 2004/09/10 20:05:18 tgl Exp $
+ *   $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_db.c,v 1.59 2004/10/01 17:25:55 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -174,12 +174,11 @@ _connectDB(ArchiveHandle *AH, const char *reqdb, const char *requser)
 
            if (noPwd || badPwd)
            {
-
                if (badPwd)
                    fprintf(stderr, "Password incorrect\n");
 
                fprintf(stderr, "Connecting to %s as %s\n",
-                       PQdb(AH->connection), newuser);
+                       newdb, newuser);
 
                need_pass = true;
                if (password)
@@ -189,6 +188,7 @@ _connectDB(ArchiveHandle *AH, const char *reqdb, const char *requser)
            else
                die_horribly(AH, modulename, "could not reconnect to database: %s",
                             PQerrorMessage(newConn));
+           PQfinish(newConn);
        }
    } while (need_pass);
 
@@ -266,7 +266,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",
-                  PQdb(AH->connection), PQerrorMessage(AH->connection));
+                    dbname, PQerrorMessage(AH->connection));
 
    /* check for version mismatch */
    _check_database_version(AH, ignoreVersion);