Avoid redundantly prefixing PQerrorMessage for a connection failure.

libpq's error messages for connection failures pretty well stand on
their own, especially since commits 52a10224e/27a48e5a1.  Prefixing
them with 'could not connect to database "foo"' or the like is just
redundant, and perhaps even misleading if the specific database name
isn't relevant to the failure.  (When it is, we trust that the
backend's error message will include the DB name.)  Indeed, psql
hasn't used any such prefix in a long time.  So, make all our other
programs and documentation examples agree with psql's practice.

Discussion: https://postgr.es/m/1094524.1611266589@sss.pgh.pa.us
This commit is contained in:
Tom Lane 2021-01-22 16:52:31 -05:00
parent 7cd9765f9b
commit 58cd8dca3d
21 changed files with 31 additions and 49 deletions

View File

@ -347,8 +347,7 @@ sql_conn(struct options *my_opts)
/* check to see that the backend connection was successfully made */
if (PQstatus(conn) == CONNECTION_BAD)
{
pg_log_error("could not connect to database %s: %s",
my_opts->dbname, PQerrorMessage(conn));
pg_log_error("%s", PQerrorMessage(conn));
PQfinish(conn);
exit(1);
}

View File

@ -124,8 +124,7 @@ vacuumlo(const char *database, const struct _param *param)
/* check to see that the backend connection was successfully made */
if (PQstatus(conn) == CONNECTION_BAD)
{
pg_log_error("connection to database \"%s\" failed: %s",
database, PQerrorMessage(conn));
pg_log_error("%s", PQerrorMessage(conn));
PQfinish(conn);
return -1;
}

View File

@ -6837,8 +6837,8 @@ main(void)
if (PQstatus(conn) != CONNECTION_OK)
{
fprintf(stderr, "Connection to database failed: %s",
PQerrorMessage(conn));
/* PQerrorMessage's result includes a trailing newline */
fprintf(stderr, "%s", PQerrorMessage(conn));
PQfinish(conn);
return 1;
}
@ -8296,8 +8296,7 @@ main(int argc, char **argv)
/* Check to see that the backend connection was successfully made */
if (PQstatus(conn) != CONNECTION_OK)
{
fprintf(stderr, "Connection to database failed: %s",
PQerrorMessage(conn));
fprintf(stderr, "%s", PQerrorMessage(conn));
exit_nicely(conn);
}
@ -8466,8 +8465,7 @@ main(int argc, char **argv)
/* Check to see that the backend connection was successfully made */
if (PQstatus(conn) != CONNECTION_OK)
{
fprintf(stderr, "Connection to database failed: %s",
PQerrorMessage(conn));
fprintf(stderr, "%s", PQerrorMessage(conn));
exit_nicely(conn);
}
@ -8694,8 +8692,7 @@ main(int argc, char **argv)
/* Check to see that the backend connection was successfully made */
if (PQstatus(conn) != CONNECTION_OK)
{
fprintf(stderr, "Connection to database failed: %s",
PQerrorMessage(conn));
fprintf(stderr, "%s", PQerrorMessage(conn));
exit_nicely(conn);
}

View File

@ -939,8 +939,7 @@ main(int argc, char **argv)
/* check to see that the backend connection was successfully made */
if (PQstatus(conn) != CONNECTION_OK)
{
fprintf(stderr, "Connection to database failed: %s",
PQerrorMessage(conn));
fprintf(stderr, "%s", PQerrorMessage(conn));
exit_nicely(conn);
}

View File

@ -188,12 +188,10 @@ ConnectDatabase(Archive *AHX,
if (PQstatus(AH->connection) == CONNECTION_BAD)
{
if (isReconnect)
fatal("reconnection to database \"%s\" failed: %s",
PQdb(AH->connection) ? PQdb(AH->connection) : "",
fatal("reconnection failed: %s",
PQerrorMessage(AH->connection));
else
fatal("connection to database \"%s\" failed: %s",
PQdb(AH->connection) ? PQdb(AH->connection) : "",
fatal("%s",
PQerrorMessage(AH->connection));
}

View File

@ -1768,8 +1768,7 @@ connectDatabase(const char *dbname, const char *connection_string,
{
if (fail_on_error)
{
pg_log_error("could not connect to database \"%s\": %s",
dbname, PQerrorMessage(conn));
pg_log_error("%s", PQerrorMessage(conn));
exit_nicely(1);
}
else

View File

@ -3460,7 +3460,7 @@ foreach my $db (sort keys %create_sql)
command_fails_like(
[ 'pg_dump', '-p', "$port", 'qqq' ],
qr/pg_dump: error: connection to database "qqq" failed: connection to server .* failed: FATAL: database "qqq" does not exist/,
qr/pg_dump: error: connection to server .* failed: FATAL: database "qqq" does not exist/,
'connecting to a non-existent database');
#########################################

View File

@ -30,8 +30,7 @@ connectToServer(ClusterInfo *cluster, const char *db_name)
if (conn == NULL || PQstatus(conn) != CONNECTION_OK)
{
pg_log(PG_REPORT, "connection to database failed: %s",
PQerrorMessage(conn));
pg_log(PG_REPORT, "%s", PQerrorMessage(conn));
if (conn)
PQfinish(conn);
@ -50,6 +49,8 @@ connectToServer(ClusterInfo *cluster, const char *db_name)
* get_db_conn()
*
* get database connection, using named database + standard params for cluster
*
* Caller must check for connection failure!
*/
static PGconn *
get_db_conn(ClusterInfo *cluster, const char *db_name)
@ -294,8 +295,7 @@ start_postmaster(ClusterInfo *cluster, bool report_and_exit_on_error)
if ((conn = get_db_conn(cluster, "template1")) == NULL ||
PQstatus(conn) != CONNECTION_OK)
{
pg_log(PG_REPORT, "\nconnection to database failed: %s",
PQerrorMessage(conn));
pg_log(PG_REPORT, "\n%s", PQerrorMessage(conn));
if (conn)
PQfinish(conn);
if (cluster == &old_cluster)

View File

@ -1225,8 +1225,7 @@ doConnect(void)
/* check to see that the backend connection was successfully made */
if (PQstatus(conn) == CONNECTION_BAD)
{
pg_log_error("connection to database \"%s\" failed: %s",
dbName, PQerrorMessage(conn));
pg_log_error("%s", PQerrorMessage(conn));
PQfinish(conn);
return NULL;
}

View File

@ -90,7 +90,7 @@ pgbench(
1,
[qr{^$}],
[
qr{connection to database "no-such-database" failed},
qr{connection to server .* failed},
qr{FATAL: database "no-such-database" does not exist}
],
'no such database');

View File

@ -150,8 +150,7 @@ connectDatabase(const ConnParams *cparams, const char *progname,
PQfinish(conn);
return NULL;
}
pg_log_error("could not connect to database %s: %s",
cparams->dbname, PQerrorMessage(conn));
pg_log_error("%s", PQerrorMessage(conn));
exit(1);
}

View File

@ -652,7 +652,8 @@ ECPGconnect(int lineno, int c, const char *name, const char *user, const char *p
const char *errmsg = PQerrorMessage(this->connection);
const char *db = realname ? realname : ecpg_gettext("<DEFAULT>");
ecpg_log("ECPGconnect: could not open database: %s\n", errmsg);
/* PQerrorMessage's result already has a trailing newline */
ecpg_log("ECPGconnect: %s", errmsg);
ecpg_finish(this);
#ifdef ENABLE_THREAD_SAFETY

View File

@ -36,8 +36,7 @@
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ECPGconnect: opening database <DEFAULT> on <DEFAULT> port <DEFAULT> for user regress_ecpg_user2
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ECPGconnect: could not open database: connection to server failed: FATAL: database "regress_ecpg_user2" does not exist
[NO_PID]: ECPGconnect: connection to server failed: FATAL: database "regress_ecpg_user2" does not exist
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_finish: connection main closed
[NO_PID]: sqlca: code: 0, state: 00000
@ -73,8 +72,7 @@
[NO_PID]: sqlca: code: -220, state: 08003
[NO_PID]: ECPGconnect: opening database <DEFAULT> on <DEFAULT> port <DEFAULT> for user regress_ecpg_user2
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ECPGconnect: could not open database: connection to server failed: FATAL: database "regress_ecpg_user2" does not exist
[NO_PID]: ECPGconnect: connection to server failed: FATAL: database "regress_ecpg_user2" does not exist
[NO_PID]: sqlca: code: 0, state: 00000
[NO_PID]: ecpg_finish: connection main closed
[NO_PID]: sqlca: code: 0, state: 00000

View File

@ -43,8 +43,7 @@ main(int argc, char **argv)
/* Check to see that the backend connection was successfully made */
if (PQstatus(conn) != CONNECTION_OK)
{
fprintf(stderr, "Connection to database failed: %s",
PQerrorMessage(conn));
fprintf(stderr, "%s", PQerrorMessage(conn));
exit_nicely(conn);
}

View File

@ -72,8 +72,7 @@ main(int argc, char **argv)
/* Check to see that the backend connection was successfully made */
if (PQstatus(conn) != CONNECTION_OK)
{
fprintf(stderr, "Connection to database failed: %s",
PQerrorMessage(conn));
fprintf(stderr, "%s", PQerrorMessage(conn));
exit_nicely(conn);
}

View File

@ -138,8 +138,7 @@ main(int argc, char **argv)
/* Check to see that the backend connection was successfully made */
if (PQstatus(conn) != CONNECTION_OK)
{
fprintf(stderr, "Connection to database failed: %s",
PQerrorMessage(conn));
fprintf(stderr, "%s", PQerrorMessage(conn));
exit_nicely(conn);
}

View File

@ -29,8 +29,7 @@ check_prepare_conn(PGconn *conn, const char *dbName)
/* check to see that the backend connection was successfully made */
if (PQstatus(conn) != CONNECTION_OK)
{
fprintf(stderr, "Connection to database \"%s\" failed: %s",
dbName, PQerrorMessage(conn));
fprintf(stderr, "%s", PQerrorMessage(conn));
exit(1);
}

View File

@ -225,8 +225,7 @@ main(int argc, char **argv)
/* check to see that the backend connection was successfully made */
if (PQstatus(conn) != CONNECTION_OK)
{
fprintf(stderr, "Connection to database failed: %s",
PQerrorMessage(conn));
fprintf(stderr, "%s", PQerrorMessage(conn));
exit_nicely(conn);
}

View File

@ -249,8 +249,7 @@ main(int argc, char **argv)
/* check to see that the backend connection was successfully made */
if (PQstatus(conn) != CONNECTION_OK)
{
fprintf(stderr, "Connection to database failed: %s",
PQerrorMessage(conn));
fprintf(stderr, "%s", PQerrorMessage(conn));
exit_nicely(conn);
}

View File

@ -167,7 +167,7 @@ main(int argc, char **argv)
conns[i] = PQconnectdb(conninfo);
if (PQstatus(conns[i]) != CONNECTION_OK)
{
fprintf(stderr, "Connection %d to database failed: %s",
fprintf(stderr, "Connection %d failed: %s",
i, PQerrorMessage(conns[i]));
exit(1);
}

View File

@ -44,7 +44,7 @@ main(int argc, char **argv)
conn = PQconnectdb(sql.data);
if (PQstatus(conn) == CONNECTION_BAD)
{
fprintf(stderr, "connection error: %s\n", PQerrorMessage(conn));
fprintf(stderr, "%s", PQerrorMessage(conn));
exit(EXIT_FAILURE);
}