summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Conway2016-12-21 23:47:54 +0000
committerJoe Conway2016-12-21 23:51:31 +0000
commitea0aa9698cfa74bb04cf53d813924fe67f278c30 (patch)
tree337b2b813c55369580bddcba4d66cae3f316206b
parenta8ae12322ae056ebbe9d83cf16b4c92e86a6ac28 (diff)
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
-rw-r--r--contrib/dblink/dblink.c2
-rw-r--r--contrib/postgres_fdw/connection.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/contrib/dblink/dblink.c b/contrib/dblink/dblink.c
index d4f9090f06..ee45cd244c 100644
--- a/contrib/dblink/dblink.c
+++ b/contrib/dblink/dblink.c
@@ -2705,7 +2705,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 bcdddc2db5..5fabc99214 100644
--- a/contrib/postgres_fdw/connection.c
+++ b/contrib/postgres_fdw/connection.c
@@ -568,7 +568,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,