Author: Amaury Forgeot d'Arc <amaur...@gmail.com> Branch: py3.3 Changeset: r82024:f471a84da866 Date: 2016-02-01 01:03 +0100 http://bitbucket.org/pypy/pypy/changeset/f471a84da866/
Log: sqlite: add connection.set_trace_callback diff --git a/lib_pypy/_sqlite3.py b/lib_pypy/_sqlite3.py --- a/lib_pypy/_sqlite3.py +++ b/lib_pypy/_sqlite3.py @@ -624,6 +624,22 @@ _lib.sqlite3_progress_handler(self._db, nsteps, progress_handler, _ffi.NULL) + @_check_thread_wrap + @_check_closed_wrap + def set_trace_callback(self, callable): + if callable is None: + trace_callback = _ffi.NULL + else: + try: + trace_callback = self.__func_cache[callable] + except KeyError: + @_ffi.callback("void(void*, const char*)") + def trace_callback(userdata, statement): + stmt = _ffi.string(statement).decode('utf-8') + callable(stmt) + self.__func_cache[callable] = trace_callback + _lib.sqlite3_trace(self._db, trace_callback, _ffi.NULL) + if sys.version_info[0] >= 3: def __get_in_transaction(self): return self._in_transaction diff --git a/lib_pypy/_sqlite3_build.py b/lib_pypy/_sqlite3_build.py --- a/lib_pypy/_sqlite3_build.py +++ b/lib_pypy/_sqlite3_build.py @@ -159,6 +159,7 @@ const char *sqlite3_column_decltype(sqlite3_stmt*,int); void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*); +void sqlite3_trace(sqlite3*, void(*)(void*, const char*), void*); int sqlite3_create_collation( sqlite3*, const char *zName, _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit