mirror of
https://github.com/postgres/postgres.git
synced 2025-04-21 12:05:57 +03:00
Report the true database name on connection errors
When reporting connection errors, we might show a database name in the message that's not the one we actually tried to connect to, if the database was taken from libpq defaults instead of from user parameters. Fix such error messages to use PQdb(), which reports the correct name. (But, per commit 2930c05634bc, make sure not to try to print NULL.) Apply to branches 9.5 through 13. Branch master has already been changed differently by commit 58cd8dca3de0. Reported-by: Robert Haas <robertmhaas@gmail.com> Discussion: https://postgr.es/m/CA+TgmobssJ6rS22dspWnu-oDxXevGmhMD8VcRBjmj-b9UDqRjw@mail.gmail.com
This commit is contained in:
parent
564cb2579a
commit
11a708f815
@ -320,7 +320,7 @@ sql_conn(struct options *my_opts)
|
|||||||
if (PQstatus(conn) == CONNECTION_BAD)
|
if (PQstatus(conn) == CONNECTION_BAD)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "%s: could not connect to database %s: %s",
|
fprintf(stderr, "%s: could not connect to database %s: %s",
|
||||||
"oid2name", my_opts->dbname, PQerrorMessage(conn));
|
"oid2name", PQdb(conn) ? PQdb(conn) : "", PQerrorMessage(conn));
|
||||||
PQfinish(conn);
|
PQfinish(conn);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
@ -129,7 +129,7 @@ vacuumlo(const char *database, const struct _param *param)
|
|||||||
if (PQstatus(conn) == CONNECTION_BAD)
|
if (PQstatus(conn) == CONNECTION_BAD)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Connection to database \"%s\" failed:\n%s",
|
fprintf(stderr, "Connection to database \"%s\" failed:\n%s",
|
||||||
database, PQerrorMessage(conn));
|
PQdb(conn) ? PQdb(conn) : "", PQerrorMessage(conn));
|
||||||
PQfinish(conn);
|
PQfinish(conn);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -2075,7 +2075,7 @@ connectDatabase(const char *dbname, const char *connection_string,
|
|||||||
{
|
{
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
_("%s: could not connect to database \"%s\": %s"),
|
_("%s: could not connect to database \"%s\": %s"),
|
||||||
progname, dbname, PQerrorMessage(conn));
|
progname, PQdb(conn) ? PQdb(conn) : "", PQerrorMessage(conn));
|
||||||
exit_nicely(1);
|
exit_nicely(1);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -904,7 +904,7 @@ doConnect(void)
|
|||||||
if (PQstatus(conn) == CONNECTION_BAD)
|
if (PQstatus(conn) == CONNECTION_BAD)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "connection to database \"%s\" failed:\n%s",
|
fprintf(stderr, "connection to database \"%s\" failed:\n%s",
|
||||||
dbName, PQerrorMessage(conn));
|
PQdb(conn), PQerrorMessage(conn));
|
||||||
PQfinish(conn);
|
PQfinish(conn);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@ -4166,7 +4166,8 @@ main(int argc, char **argv)
|
|||||||
|
|
||||||
if (PQstatus(con) == CONNECTION_BAD)
|
if (PQstatus(con) == CONNECTION_BAD)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "connection to database \"%s\" failed\n", dbName);
|
fprintf(stderr, "connection to database \"%s\" failed\n",
|
||||||
|
PQdb(con) ? PQdb(con) : "");
|
||||||
fprintf(stderr, "%s", PQerrorMessage(con));
|
fprintf(stderr, "%s", PQerrorMessage(con));
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user