Commit 896a0c44 authored by Tom Lane's avatar Tom Lane

Clear conn->errorMessage at successful completion of PQconnectdb().

Commits ffa2e467 and 52a10224 caused libpq's connection-establishment
functions to usually leave a nonempty string in the connection's
errorMessage buffer, even after a successful connection.  While that
was intentional on my part, more sober reflection says that it wasn't
a great idea: the string would be a bit confusing.  Also this broke at
least one application that checked for connection success by examining
the errorMessage, instead of using PQstatus() as documented.  Let's
clear the buffer at success exit, restoring the pre-v14 behavior.

Discussion: https://postgr.es/m/4170264.1620321747@sss.pgh.pa.us
parent 4ffd3fe4
...@@ -3658,6 +3658,13 @@ keep_going: /* We will come back to here until there is ...@@ -3658,6 +3658,13 @@ keep_going: /* We will come back to here until there is
/* We can release the address list now. */ /* We can release the address list now. */
release_conn_addrinfo(conn); release_conn_addrinfo(conn);
/*
* Contents of conn->errorMessage are no longer interesting
* (and it seems some clients expect it to be empty after a
* successful connection).
*/
resetPQExpBuffer(&conn->errorMessage);
/* We are open for business! */ /* We are open for business! */
conn->status = CONNECTION_OK; conn->status = CONNECTION_OK;
return PGRES_POLLING_OK; return PGRES_POLLING_OK;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment