diff --git a/src/interfaces/libpq/fe-misc.c b/src/interfaces/libpq/fe-misc.c index 44f7d039784fa46eb81449bd6f72853e02a83cc9..f58d7987423bc9336030e00bce4ba4660686bf1a 100644 --- a/src/interfaces/libpq/fe-misc.c +++ b/src/interfaces/libpq/fe-misc.c @@ -764,12 +764,8 @@ retry3: /* ready for read */ break; default: - printfPQExpBuffer(&conn->errorMessage, - libpq_gettext( - "server closed the connection unexpectedly\n" - "\tThis probably means the server terminated abnormally\n" - "\tbefore or while processing the request.\n")); - goto definitelyFailed; + /* we override pqReadReady's message with something more useful */ + goto definitelyEOF; } /* @@ -808,9 +804,16 @@ retry4: /* * OK, we are getting a zero read even though select() says ready. This - * means the connection has been closed. Cope. Note that errorMessage - * has been set already. + * means the connection has been closed. Cope. */ +definitelyEOF: + printfPQExpBuffer(&conn->errorMessage, + libpq_gettext( + "server closed the connection unexpectedly\n" + "\tThis probably means the server terminated abnormally\n" + "\tbefore or while processing the request.\n")); + + /* Come here if lower-level code already set a suitable errorMessage */ definitelyFailed: pqDropConnection(conn); conn->status = CONNECTION_BAD; /* No more connection to backend */