summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Conway2016-12-21 23:48:28 +0000
committerJoe Conway2016-12-21 23:51:52 +0000
commit0f5b1867c2e6b752336f0b32d05f94c424664f79 (patch)
tree3fec20d52719469709d4a0a7ef4e27377d9d84f3
parentd0f60e4cc5f20bf64ee12d740e52db2773a93c21 (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 009b877e471..b6d6c553d05 100644
--- a/contrib/dblink/dblink.c
+++ b/contrib/dblink/dblink.c
@@ -2707,7 +2707,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 116be7ddcb7..12f736e403a 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,