pysqlite 2.3.1 released
I'm pleased to announce the availability of pysqlite 2.3.1. This is a
bugfix release, but it includes important fixes. Users of pysqlite
2.2.1 to 2.3.0 should definitely upgrade.
Go to http://pysqlite.org/ for downloads, online documentation and
What is pysqlite?
pysqlite is a DB-API 2.0-compliant database interface for SQLite.
SQLite is a relational database management system contained in a
relatively small C library. It is a public domain project created
by D. Richard Hipp. Unlike the usual client-server paradigm, the
SQLite engine is not a standalone process with which the program
communicates, but is linked in and thus becomes an integral part
of the program. The library implements most of SQL-92 standard,
including transactions, triggers and most of complex queries.
pysqlite makes this powerful embedded SQL engine available to
Python programmers. It stays compatible with the Python database
API specification 2.0 as much as possible, but also exposes most
of SQLite's native API, so that it is for example possible to
create user-defined SQL functions and aggregates in Python.
If you need a relational database for your applications, or even
small tools or helper scripts, pysqlite is often a good fit. It's
easy to use, easy to deploy, and does not depend on any other
Python libraries or platform libraries, except SQLite. SQLite
itself is ported to most platforms you'd ever care about.
It's often a good alternative to MySQL, the Microsoft JET engine
or the MSDE, without having any of their license and deployment
pysqlite can be downloaded from http://pysqlite.org/ - Sources and
Windows binaries for Python 2.4 and Python 2.3 are available.
- - Implemented a workaround for SQLite versions < 3.3.3: they are buggy
and cannot use sqlite3_result_error from certain callbacks. So we
cannot abort queries from callbacks. For these SQLite versions we
set the Python exception and catch it later on when sqlite3_step is
- - Plugged a memory leak that affects pysqlite versions 2.2.1, 2.2.2
and 2.3.0: due to wrong usage of weak references, an internal list
of weak references was always growing with each new statement text
executed on the same connection.
- - Removed a call to enable_callback_tracebacks that slipped in the