From 3e31fb359e512468a42d3d49df1108d6d9b418a2 Mon Sep 17 00:00:00 2001 From: Daniele Varrazzo Date: Wed, 30 Sep 2015 12:00:13 +0100 Subject: [PATCH] Report the server response status on errors with no message Suggested by Craig Ringer in pull request #353, should also give more information for other cases we were reported on flaky servers (AWS, digital ocean...), see bug #281. --- NEWS | 6 ++++++ psycopg/pqpath.c | 6 ++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index d2c85d3b..0b9ebe61 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,12 @@ Current release --------------- +What's new in psycopg 2.6.2 +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +- Report the server response status on errors (such as :ticket:`#281`). + + What's new in psycopg 2.6.1 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/psycopg/pqpath.c b/psycopg/pqpath.c index 5e1974be..5a128382 100644 --- a/psycopg/pqpath.c +++ b/psycopg/pqpath.c @@ -190,8 +190,10 @@ pq_raise(connectionObject *conn, cursorObject *curs, PGresult **pgres) raise and a meaningful message is better than an empty one. Note: it can happen without it being our error: see ticket #82 */ if (err == NULL || err[0] == '\0') { - PyErr_SetString(DatabaseError, - "error with no message from the libpq"); + PyErr_Format(DatabaseError, + "error with status %s and no message from the libpq", + PQresStatus(pgres == NULL ? + PQstatus(conn->pgconn) : PQresultStatus(*pgres))); return; }