CVS commit: pkgsrc/databases/py-sqlite2

Module Name: pkgsrc
Committed By: wiz
Date: Sat Sep 6 16:12:44 UTC 2008
Modified Files:
pkgsrc/databases/py-sqlite2: Makefile PLIST distinfo
Log Message:
Found a new homepage, and an even newer version, including changelogs:
2.5.0:
- Windows binaries are now cross-built using mingw on Linux
- import various fixes from Python 2.6 version
- Connection has new method iterdump() that allows you to create a script file
that can be used to clone a database
- the docs are now built using Sphinx and were imported from Python 2.6's
sqlite3 module
- Connection.enable_load_extension(enabled) to allow/disallow extension
loading. Allows you to use fulltext search extension, for example ;-)
- Give the remaining C functions used in multiple .c source files the pysqlite_
prefix.
- Release GIL during sqlite3_prepare() calls for better concurrency.
- Automatically download the SQLite amalgamation when building statically.
2.4.1:
- Made unicode strings for the database parameter in connect() work again
- Removed bad defaults from setup.cfg
2.4.0:
- Implemented context managers. pysqlite's connections can now be used as
context managers with Python 2.5 or later:
from __future__ import with_statement
from pysqlite2 import dbapi2 as sqlite
con = sqlite.connect(":memory:")
con.execute("create table person (id integer primary key, firstname
varchar unique)")
# Successful, con.commit() is called automatically afterwards
with con:
con.execute("insert into person(firstname) values (?)", ("Joe",))
# con.rollback() is called after the with block finishes with an
exception, the
# exception is still raised and must be catched
try:
with con:
con.execute("insert into person(firstname) values (?)",
("Joe",))
except sqlite.IntegrityError:
print "couldn't add Joe twice"
- pysqlite connections can now be created from APSW connections. This enables
users to use APSW functionality in applications using the DB-API from
pysqlite:
from pysqlite2 import dbapi2 as sqlite
import apsw
apsw_con = apsw.Connection(":memory:")
apsw_con.createscalarfunction("times_two", lambda x: 2*x, 1)
# Create pysqlite connection from APSW connection
con = sqlite.connect(apsw_con)
result = con.execute("select times_two(15)").fetchone()[0]
assert result == 30
con.close()
Caveat: This will only work if both pysqlite and APSW are dynamically
linked against the same SQLite shared library. Otherwise you will
experience a segfault.
- Fixed shuffled docstrings for fetchXXX methods.
- Workaround for SQLite 3.5.x versions which apparently return NULL for
"no-operation" statements.
- Disable the test for rollback detection on old SQLite versions. This prevents
test failures on systems that ship outdated SQLite libraries like MacOS X.
- Implemented set_progress_handler for progress callbacks from SQLite. This is
particularly useful to update GUIs during long-running queries. Thanks to
exarkun for the original patch.
To generate a diff of this commit:
cvs rdiff -r1.12 -r1.13 pkgsrc/databases/py-sqlite2/Makefile
cvs rdiff -r1.3 -r1.4 pkgsrc/databases/py-sqlite2/PLIST
cvs rdiff -r1.5 -r1.6 pkgsrc/databases/py-sqlite2/distinfo
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.