Releases: rogerbinns/apsw
3.47.1.0
Documentation on how to build for packagers such as those maintaining Linux and BSD distributions.
Documentation on how to build for pyodide, the Python WASM implementation that runs in the browser and NPM. PyPI does not accept pyodide packages yet.
A command line tool apsw is defined which invokes the shell. This also allows using uvx apsw without having to explicitly install APSW.
Added apsw.ext.analyze_pages() which uses dbstat to provide useful information about the pages making up the database, and fragmentation. The shell .pages command shows it in a pretty form.
3.47.0.0
Support for Python 3.8 removed (APSW issue 539).
The readonly database statistics virtual table (dbstat) is enabled by default for PyPI builds, and when --enable-all-extensions is passed to manual builds.
Added recursive triggers and optimize to apsw.bestpractice.
Multiple callbacks can be present for Connection.trace_v2() with APSW ensuring they are all called (APSW issue 502)
Connection.trace_v2() callback information now has trigger, id, and total_changes fields.
Added Connection.data_version for getting a change counter. pragma data_version doesnβt update when changes are made on the same connection, only others.
Added apsw.ext.ShowResourceUsage() for getting resource and SQLite usage in a context block, and also use it for the shell timer command.
Added apsw.ext.Trace() for tracing SQL execution, row and change counting, and timing per statement for use in a context block.
Added FTS5 support including registering and calling tokenizers, and auxiliary functions. The apsw.fts5 module provides many additional classes and methods for working with FTS5, including tokenizers for HTML, JSON, regular expressions, support tokenizers for synonyms, stop words, transformers, and a Table class that wraps access to a FTS5 table (including creating one) with search(), more_like(), and query_suggest(). apsw.fts5query can parse, modify, and reconstruct queries. The shell gets a ftsq command for issuing queries.
Added apsw.unicode which implements Unicode algorithms for determining codepoint groups making up a user perceived character, word and sentence splitting, and where line breaks can be made. These are used to make provided FTS5 tokenizers and auxiliary functions fully Unicode aware. There are many additional methods such as getting categories, stripping diacritics, case folding, width when output to a terminal, text wrapping, and more.
apsw.ext.format_query_table() uses apsw.unicode to get widths and line breaks more accurate. As a side effect it loses the word_wrap parameter (breaking change).
3.46.1.0
The shell dump command outputs the application_id in addition to the user_version.
PyPI binary builds for Python 3.13 now available, as well as older Python ARM64 are available.
3.46.0.1
apsw.ext.query_info() provides the count and names of bindings parameters. (APSW issue 528)
Address how errors are handled in VFS xRandomness routine, that is only called once by SQLite to seed its random number generator. (APSW issue 526)
Added Connection.vfsname() and updated corresponding shell command to get the diagnostic names of the vfs stack for the connection. (APSW issue 525)
Do not cache Connection.pragma() statements to avoid encryption keys, or pragmas that run during prepare from being retained. (APSW issue 522)
Connection.pragma() adds keyword schema argument to run pragma against attached databases. (APSW issue 524)
3.46.0.0
Adjusted levels in apsw.ext.log_sqlite() to be lower for some SQLite messages like SQLITE_SCHEMA and SQLITE_NOTICE_RECOVER_WAL (APSW issue 518)
Previous source releases were signed with PGP. Starting with this release Sigstoreβs cosign tool is used (instructions). (APSW issue 512)
3.45.3.0
No APSW changes.
3.45.2.0
Minor doc and tests change due to changed behaviour of sqlite3_serialize on an empty database, used by Connection.serialize().
3.45.1.0
No APSW changes
3.45.0.0
Correctly handle NULL/None VFS filenames (APSW issue 506)
3.44.2.0
Added logger parameter to apsw.ext.log_sqlite() to use a specific logging.Logger (APSW issue 493)
Added apsw.ext.result_string() to turn an result code into a string, taking into account if it is extended or not.
Provide detail when C implemented objects are printed. For example connections include the filename. (APSW issue 494)
Added URIFilename.parameters() (APSW issue 496)
URIFilename are only valid for the duration of the VFS.xOpen() call. If you save and use the object later you will get an exception. (APSW issue 501)