diff options
author | Daniele Varrazzo <daniele.varrazzo@gmail.com> | 2011-06-05 16:30:37 +0100 |
---|---|---|
committer | Daniele Varrazzo <daniele.varrazzo@gmail.com> | 2011-06-05 16:30:37 +0100 |
commit | 709df38d7912ec1ad06f65ebddb2ee097adf66c7 (patch) | |
tree | e7db977fa4c90fcb785cc0ce3d68517b7db2b0c8 /psycopg | |
parent | 8f876d4b5d26a4e618d0cdcb2189b5ee3abf97c6 (diff) | |
download | psycopg2-709df38d7912ec1ad06f65ebddb2ee097adf66c7.tar.gz |
Don't clobber an eventual Python exception set by a green thread
Diffstat (limited to 'psycopg')
-rw-r--r-- | psycopg/pqpath.c | 14 |
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; } |