[issue11688] SQLite trace callback

Torsten Landschoff report at bugs.python.org
Wed Mar 30 01:02:07 CEST 2011


Torsten Landschoff <t.landschoff at gmx.net> added the comment:

> - you need to document the new API in Doc/library/sqlite3.rst

Included in the updated patch.

> +        self.assertTrue([x for x in traced_statements if x.find("create table foo") != -1])
>
> This looks a bit complicated, why not something like
> `any("create table foo" in x for x in traced_statements)`?

Fixed.

> +        sqlite3_trace(self->db, _trace_callback, trace_callback);
> +        if (PyDict_SetItem(self->function_pinboard, trace_callback, Py_None) == -1)
> +            return NULL;
>
> Shouldn't sqlite3_trace() be called only after PyDict_SetItem() succeeds?

Fixed as well. I just reversed the calls. What I dislike about this function pinboard approach is that every function registered as a callback stays pinned to the SQLite connection for the lifetime of the latter. But that belongs into another patch, I guess.

----------
Added file: http://bugs.python.org/file21468/sqlite_trace.diff

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue11688>
_______________________________________


More information about the Python-bugs-list mailing list