[pysqlite] APSW 3.6.3-r1 released
Roger Binns <[email protected]> Fri, 10 Oct 2008 00:23:28 -0700
| Newsgroups | gmane.comp.python.db.pysqlite.user |
|---|---|
| Message-ID | <[email protected]> |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
APSW 3.6.3-r1 is now available. Full documentation including change
history is available at http://apsw.googlecode.com/files/apsw-3.6.3-r1.html
APSW focuses on being a minimal layer over SQLite attempting just to
translate the complete SQLite API into Python. The documentation has a
section on the differences between APSW and pysqlite.
The major enhancement in this release is that you can write your own VFS
in Python. In just a few lines you can obfuscate your database as the
example shows, or enhance your testing by synthesizing disk errors.
Detailed changes:
You can now write your own [1]VFS in Python. You can also inherit
from an existing VFS making it easy to augment or override small
bits of behaviour without having to code everything else. See the
[2]example where database files are obfuscated by XORing their
contents.
setup.py now takes an optional --fetch-sqlite[=ver] argument to
automatically download and use the latest SQLite amalgamation (or
a specified version). On non-Windows platforms it will also work
out what compile flags SQLite needs (for example HAVE_USLEEP,
HAVE_LOCALTIME_R). Several other options to setup.py are also
available to control enabling/omitting certain features and
functionality. See [3]building for further details.
APSW checks that SQLite was compiled to be [4]threadsafe.
Added new constants:
* SQLITE_IOERR_ACCESS, SQLITE_IOERR_CHECKRESERVEDLOCK and
SQLITE_IOERR_LOCK extended result codes
* SQLITE_OPEN_NOMUTEX and SQLITE_OPEN_FULLMUTEX open flags
* Several new SQLITE_CONFIG and SQLITE_STATUS codes
Wrapped several new SQLite apis:
* [5]sqlite3_config
* [6]sqlite3_initialize/sqlite3_shutdown
* [7]sqlite3_memory_used/sqlite3_memory_highwater
* [8]sqlite3_status
* [9]sqlite3_soft_heap_limit
* [10]sqlite3_release_memory
* [11]sqlite3_randomness
The following experimental apis are not wrapped as there is
nothing useful you can do with them (yet):
* [12]sqlite3_db_config
* [13]sqlite3_db_status
Restored prior behaviour regarding Python ints and longs returning
int for numbers fitting in signed 32 bit. This only affects Python
2 as Python 3 uses long exclusively. Thanks to Joe Pham for
reporting this as [14]issue 24.
Added Connection.sqlite3pointer method to help with [15]issue 26.
References
Visible links
1. See "VFS" in documentation
2. See example VFS near the end of the example in the documentation
3. See "Building" in the documentation
4. http://sqlite.org/c3ref/threadsafe.html
5. http://sqlite.org/c3ref/config.html
6. http://sqlite.org/c3ref/initialize.html
7. http://sqlite.org/c3ref/memory_highwater.html
8. http://sqlite.org/c3ref/status.html
9. http://sqlite.org/c3ref/soft_heap_limit.html
10. http://sqlite.org/c3ref/release_memory.html
11. http://sqlite.org/c3ref/randomness.html
12. http://www.sqlite.org/c3ref/db_config.html
13. http://www.sqlite.org/c3ref/db_status.html
14. http://code.google.com/p/apsw/issues/detail?id=24
15. http://code.google.com/p/apsw/issues/detail?id=26
Roger
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
iD8DBQFI7wLwmOOfHg372QQRAri4AJ4rnAr6dJeZ8RQ1c7iOIQeIBpHdSACfc8qQ
xwes/yg6Yjva1Ky7hOC/6nc=
=8XSy
-----END PGP SIGNATURE-----