summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Eisentraut2002-08-10 16:57:32 +0000
committerPeter Eisentraut2002-08-10 16:57:32 +0000
commit029aa97f2d90a2ef97b2c0ca917bea7268392eb1 (patch)
treeb5a7c08bf2030f7c0b4b1a6cc64ba6e2a809efdb /src
parent60ac5b805e63ee0055fa9ff44a8486953f6dcbbc (diff)
Make sure all clients have the same understanding of default user name
and database. In particular, make script wrappers understand the PGDATABASE environment variable.
Diffstat (limited to 'src')
-rw-r--r--src/bin/pg_dump/pg_backup_archiver.c56
-rw-r--r--src/bin/pg_dump/pg_backup_archiver.h6
-rw-r--r--src/bin/pg_dump/pg_backup_db.c32
-rw-r--r--src/bin/pg_dump/pg_dump.c13
-rw-r--r--src/bin/pg_dump/pg_restore.c4
-rw-r--r--src/bin/psql/help.c14
-rw-r--r--src/bin/scripts/createdb6
-rw-r--r--src/bin/scripts/createlang.sh6
-rw-r--r--src/bin/scripts/droplang6
-rw-r--r--src/bin/scripts/vacuumdb6
10 files changed, 38 insertions, 111 deletions
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`