From 82e42192607635e04834601bc12a6c7dc5185ffe Mon Sep 17 00:00:00 2001 From: Craig Ringer Date: Wed, 30 Sep 2015 14:43:17 +0800 Subject: [PATCH] Report libpq error code for errors with no message Instead of: DatabaseError: error with no message from the libpq raise a message like: DatabaseError: error code PGRES_COPY_BOTH with no error message from libpq (In this particular case PGRES_COPY_BOTH isn't actually an error, but psycopg2 doesn't understand it and should treat it that way.) Fixes #352 --- psycopg/pqpath.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/psycopg/pqpath.c b/psycopg/pqpath.c index 5e1974be..05fe7688 100644 --- a/psycopg/pqpath.c +++ b/psycopg/pqpath.c @@ -190,8 +190,9 @@ 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 code %s with no error message from libpq", + PQresStatus(pgres == NULL ? PQstatus(conn->pgconn) : PQresultStatus(*pgres))); return; }