summaryrefslogtreecommitdiff
path: root/psycopg
diff options
context:
space:
mode:
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>2011-06-05 16:30:37 +0100
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>2011-06-05 16:30:37 +0100
commit709df38d7912ec1ad06f65ebddb2ee097adf66c7 (patch)
treee7db977fa4c90fcb785cc0ce3d68517b7db2b0c8 /psycopg
parent8f876d4b5d26a4e618d0cdcb2189b5ee3abf97c6 (diff)
downloadpsycopg2-709df38d7912ec1ad06f65ebddb2ee097adf66c7.tar.gz
Don't clobber an eventual Python exception set by a green thread
Diffstat (limited to 'psycopg')
-rw-r--r--psycopg/pqpath.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/psycopg/pqpath.c b/psycopg/pqpath.c
index f50b00b..0e5b249 100644
--- a/psycopg/pqpath.c
+++ b/psycopg/pqpath.c
@@ -343,12 +343,12 @@ pq_execute_command_locked(connectionObject *conn, const char *query,
*tstate = PyEval_SaveThread();
}
if (*pgres == NULL) {
- const char *msg;
-
Dprintf("pq_execute_command_locked: PQexec returned NULL");
- msg = PQerrorMessage(conn->pgconn);
- if (msg)
- *error = strdup(msg);
+ if (!PyErr_Occurred()) {
+ const char *msg;
+ msg = PQerrorMessage(conn->pgconn);
+ if (msg && *msg) { *error = strdup(msg); }
+ }
goto cleanup;
}
@@ -361,8 +361,8 @@ pq_execute_command_locked(connectionObject *conn, const char *query,
retvalue = 0;
IFCLEARPGRES(*pgres);
-
- cleanup:
+
+cleanup:
return retvalue;
}