postgres.git / summary / log / commit / refs
commit 88673c9d3bc72004367e3317175cb873584405bf
Author: Joe Conway <mail@joeconway.com>
Date: Wed Dec 21 23:48:05 2016 +0000
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
contrib/dblink/dblink.c | 2 +-
contrib/postgres_fdw/connection.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/contrib/dblink/dblink.c b/contrib/dblink/dblink.c
index d4f9090f062..ee45cd244c6 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 8ca1c1c8986..ff04f43cf20 100644
--- a/contrib/postgres_fdw/connection.c
+++ b/contrib/postgres_fdw/connection.c
@@ -567,7 +567,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,
[parent: 88e1e91da584]