[ANN] PySQLite 0.3.0 released
gerhard.haering at opus-gmbh.net
Thu Sep 12 08:52:37 CEST 2002
pysqlite - Extension module for SQLite databases.
A Python-DB API 2.0 compliant extension module that connects to
SQLite is a powerful, embedded relational database in a compact C library.
It supports a large subset of SQL92, multiple tables and indices,
transactions, and triggers. It has a simple C/C++ interface requiring only
three functions to perform queries. It has TCL bindings and an ODBC
driver. Sources are uncopyrighted and can be used for any purpose. More
information can be found at <http://www.hwaci.com/sw/sqlite/index.html>.
conn = sqlite.connect("db")
cursor = conn.cursor()
SQL = """ select category, family, genus, species
from calflora order by genus, species limit 10"""
for col in cursor.description:
print "\t %12s - %3s bytes" % (col, repr(col))
row = cursor.fetchone()
while row != None:
print "%14s, %15s, %19s, %8s, %25s" % tuple(row)
row = cursor.fetchone()
SQL = "insert into calflora (family,genus,species) values(%s,%s,%s)"
cursor.execute(SQL, ('greenus', 'weedus', 'maximus'))
Source and Windows binary downloads are available at
Gerhard Häring <gerhard.haering at gmx.de>
Michael Owens <mike at mikesclutter.com>
William Trenker <wtrenker at shaw.ca>
PySQLite has been tested on FreeBSD, Linux, and Windows with both Python 2.1
and 2.2. The latest versions of SQLite (v. 2.6 and greater) are recommended.
Version 0.3.0 fixed a lot of bugs, while also adding new features. Users of
PySQLite are recommended to upgrade.
The following are some of the changes and enhancements since the last
- Squashed a few memory leaks.
- Exposed the sqlite_exec, sqlite_last_insert_rowid and
sqlite_changes functions of SQLite to Python as methods of the
- Add support for Date types, if mxDateTime is
- Support for optional DB-API extensions from PEP 0249
- Added files for creating a PySQLite Debian package.
- setup.py: - Added Cygwin as platform that's supported by default
- Added third example: program to dump a table in XML format.
- Use bool type and custom bool converter for boolean fields.
- Set cursor.rowcount appropriately after DML (insert/update/delete)
- Fixed a bug with the SQL-quoting of longs.
- Inline documentation improvement.
- Change invocation of ReferenceError to work with Python 2.1
- (really) implemented weak references from cursors to connections
- Added new test suite.
- Adapted test for threadsafety attribute.
- Added checks with user-defined float and string functions.
- Removed Connection.begin(). Transactions are now started
implicitely. - Use DB-API quoting instead of manual Python
quoting. - Use string methods instead of the string module.
- Added checks for functions/aggreagates that raise exceptions or
return None (NULL).
- Added tests for proper commit/rollback behaviour. Added tests
for autocommit feature.
- Implemented autocommit feature. Renamed the parameter of
Connection.__init__ from "filename" to "db". Commit and rollback
now check if the connection is open at all. Started adapting the
weak reference code from pyPgSQL to loosely couple cursors and
connections. This is needed when you want to check if there are
any open cursors for a given connection, for example.
- Simplified version numbers, removed the check for equal version
numbers in _sqlite and sqlite. This looked like overhead to
me. The version number scheme is now only: major.minor.micro Set
threadsafety to level 1. I believe we can guarantee than sharing
the module among threads will do no harm. Sharing the connection
More information about the Python-list