APSW 3.41.0.0 Released

4 views
Skip to first unread message

Roger Binns

unread,
Mar 1, 2023, 12:27:19 PM3/1/23
to python...@googlegroups.com
APSW 3.41.0.0 is now available. The project is at
https://github.com/rogerbinns/apsw which includes full documentation,
downloads, and more.

APSW is a wrapper around SQLite that provides all SQLite API
functionality in Python. It is not DBAPI compliant as it provides SQLite
semantics. sqlite3 provides DBAPI semantics. You can see the two
approaches contrasted at https://rogerbinns.github.io/apsw/pysqlite.html

Changelist is below and at https://rogerbinns.github.io/apsw/changes.html

Backwards incompatible change: Bindings using a dictionary with a
missing key now result in a KeyError exception. You can use
allow_missing_dict_bindings() to restore the old behaviour. (APSW issue 392)

Virtual table updates:

* VTTable.BestIndexObject() is now available which provides IndexInfo
exposing full control (APSW issue 332, APSW issue 329, APSW issue 278,
APSW issue 188)

* IndexInfo.set_aConstraintUsage_in() can have in values passed all at
once to VTCursor.Filter()

* Exceptions in VTTable.FindFunction() are now reported as an unraisable
exception because it isn't possible to tell SQLite about the error.

* VTTable.FindFunction() can now return (int, callable) to allow for
virtual table specific function overloads. (APSW issue 269)

* Added Connection.vtab_config() and Connection.vtab_on_conflict() (APSW
issue 189, APSW issue 190)

* Connection.createmodule() lets you have eponymous, eponymous_only, and
read_only modules. (APSW issue 196)

* Virtual table updates can avoid having to provide all column values
when only a subset are changing. See apsw.no_change,
Connection.createmodule() use_no_change parameter,
VTCursor.ColumnNoChange() and VTTable.UpdateChangeRow() (APSW issue 402)

* All virtual table methods are supported - added iVersion 2 and 3. You
can specify the iVersion in Connection.createmodule() (APSW issue 128)

* apsw.ext.make_virtual_module() makes it very easy to turn a Python
function into a virtual table module.

* apsw.ext.generate_series() and apsw.ext.generate_series_sqlite()
added. (APSW issue 380)

apsw.format_sql_value() now outputs floating point NaN, positive and
negative infinity, and signed zero exactly as SQLite does (APSW issue 398)

Added apsw.ext.format_query_table() for handy table output with auto
column sizes, colour, word wrap etc.

Added Connection.is_interrupted().

Roger
Reply all
Reply to author
Forward
0 new messages