Mercurial > cpython-lru_cache-weakref
diff Modules/_sqlite/connection.c @ 84780:020dbfdf9517
Issue #18488: Fix _pysqlite_final_callback()
Restore behaviour of Python 3.3: print the finalizer() error if
sqlite3.enable_callback_tracebacks() has been called, clear the error
otherwise.
But keep (save/restore) also the AttributeError raised in
_pysqlite_step_callback().
| author | Victor Stinner <victor.stinner@gmail.com> |
|---|---|
| date | Mon, 22 Jul 2013 08:34:32 +0200 |
| parents | 026593cbc006 |
| children | f7a0a4e0ada4 |
line wrap: on
line diff
--- a/Modules/_sqlite/connection.c Sun Jul 21 20:58:15 2013 -0400 +++ b/Modules/_sqlite/connection.c Mon Jul 22 08:34:32 2013 +0200 @@ -718,10 +718,6 @@ function_result = _PyObject_CallMethodId(*aggregate_instance, &PyId_finalize, ""); - /* Restore the exception (if any) of the last call to step(), - but clear also the current exception if finalize() failed */ - PyErr_Restore(exception, value, tb); - Py_DECREF(*aggregate_instance); ok = 0; @@ -738,6 +734,10 @@ _sqlite3_result_error(context, "user-defined aggregate's 'finalize' method raised error", -1); } + /* Restore the exception (if any) of the last call to step(), + but clear also the current exception if finalize() failed */ + PyErr_Restore(exception, value, tb); + error: #ifdef WITH_THREAD PyGILState_Release(threadstate);
