From: Joe Conway Date: Wed, 21 Dec 2016 23:48:40 +0000 (-0800) Subject: Improve dblink error message when remote does not provide it X-Git-Tag: REL9_3_16~42 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3272be3468956eedb9e18a5e1dc9eef352663152;p=thirdparty%2Fpostgresql.git Improve dblink error message when remote does not provide it When dblink or postgres_fdw detects an error on the remote side of the connection, it will try to construct a local error message as best it can using libpq's PQresultErrorField(). When no primary message is available, it was bailing out with an unhelpful "unknown error". Make that message better and more style guide compliant. Per discussion on hackers. Backpatch to 9.2 except postgres_fdw which didn't exist before 9.3. Discussion: https://postgr.es/m/19872.1482338965%40sss.pgh.pa.us --- diff --git a/contrib/dblink/dblink.c b/contrib/dblink/dblink.c index af062fa6113..300fc380fed 100644 --- a/contrib/dblink/dblink.c +++ b/contrib/dblink/dblink.c @@ -2710,7 +2710,7 @@ dblink_res_error(const char *conname, PGresult *res, const char *dblink_context_ ereport(level, (errcode(sqlstate), message_primary ? errmsg_internal("%s", message_primary) : - errmsg("unknown error"), + errmsg("could not obtain message string for remote error"), message_detail ? errdetail_internal("%s", message_detail) : 0, message_hint ? errhint("%s", message_hint) : 0, message_context ? errcontext("%s", message_context) : 0, diff --git a/contrib/postgres_fdw/connection.c b/contrib/postgres_fdw/connection.c index 39d29224554..a2734681433 100644 --- a/contrib/postgres_fdw/connection.c +++ b/contrib/postgres_fdw/connection.c @@ -496,7 +496,7 @@ pgfdw_report_error(int elevel, PGresult *res, PGconn *conn, ereport(elevel, (errcode(sqlstate), message_primary ? errmsg_internal("%s", message_primary) : - errmsg("unknown error"), + errmsg("could not obtain message string for remote error"), message_detail ? errdetail_internal("%s", message_detail) : 0, message_hint ? errhint("%s", message_hint) : 0, message_context ? errcontext("%s", message_context) : 0,