2023-10-02 17:54:46 by David Brownlee | Files touched by this commit (2) |
Log message:
Fix build on systems without alloca.h
alloca.h has been deprecated for a long time, and no modern system
should need it (and some do not even have it). While there are some
references to alloca() in the source, none are in src/apsw.c
Fixes build on at least NetBSD
https://github.com/rogerbinns/apsw/pull/490
|
2023-09-27 17:17:05 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
py-apsw: updated to 3.43.1.0
3.43.1.0
All C code calling into Python and all C code called by Python uses vectorcall / \
fastcall (see PEP 590) which reduces the overhead of passing and receiving \
positional and keyword arguments. (APSW issue 477 APSW issue 446):
Conversion of arguments from Python values to C values drops generic \
PyArg_ParseTupleAndKeywords in favour of direct processing which is more \
efficient and allows better exception messages.
Running speedtest with a VFS that inherits all methods went from being 17% \
slower than pure SQLite to 2% slower.
A virtual table benchmark takes 35% less time. (Remember that benchmarks are \
best case!)
The shell JSON output modes have been fixed. Mode 'json' outputs a json array, \
while mode 'jsonl' does newline delimited json objects, aka json lines. (APSW \
issue 483)
|
2023-08-28 12:34:46 by Adam Ciarcinski | Files touched by this commit (3) | |
Log message:
py-apsw: updated to 3.43.0.0
3.43.0.0
This is the last version that supports Python 3.6 and Python 3.7 (both end of \
life). The policy as stated in the about page is that there will be one more \
APSW release after a Python version goes end of life supporting that Python \
version. (APSW issue 471)
Added best practice module (APSW issue 460)
apsw.ext.log_sqlite() outputs SQLite warnings at warning level. (APSW issue 472)
sqlite3_stmt_explain is wrapped available as a explain keyword parameter on \
execute/executemany methods. (APSW issue 474)
Added documentation and helper class for implementing custom pragmas in your own \
Virtual File System (VFS) (APSW issue 464)
Reduced overhead of the Column method when using apsw.ext.make_virtual_module() \
(APSW issue 465)
|
2023-07-30 17:39:00 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
py-apsw: updated to 3.42.0.1
3.42.0.1
Work with SQLite compiled with SQLITE_OMIT_DEPRECATED. Connection.setprofile() \
was changed from using the deprecated sqlite3_profile to sqlite3_trace_v2 giving \
the same results. When including the amalgamation, SQLITE_OMIT_DEPRECATED is \
defined. (APSW issue 443)
Shell updates adding various commands to match the SQLite shell, as well as code \
and documentation improvements. (APSW issue 397)
Added Connection.read() and apsw.ext.dbinfo() to provide information from the \
database and journal/wal files. The shell command .dbinfo displays it.
Added apsw.vfs_details(). The shell command .vfslist displays it.
Implemented VFS method xCurrentTimeInt64. The default SQLite VFS no longer \
provide xCurrentTime (floating point version) if SQLITE_OMIT_DEPRECATED is \
defined, so this is needed for inheritance to work. (APSW issue 451)
Backwards incompatible change: VFS If you override xCurrentTime, then you will \
need to override xCurrentTimeInt64 in the same way, or exclude xCurrentTimeInt64 \
in VFS, or use iVersion of 1.
speedtest now shows summary statistics, and improved help text. (APSW issue 444)
|
2023-05-25 11:58:29 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
py-apsw: updated to 3.42.0.0
3.42.0.0
SQLITE_ENABLE_COLUMN_METADATA is enabled when installing APSW from PyPI (binary \
or source). (APSW issue 435)
Type stubs and typing information in the documentation use newer Python \
conventions such as | instead of Union and list instead of typing.List, being \
more concise and readable. (A recent Python is required to use them, but they \
have no effect at runtime.) (APSW issue 438)
Shell: Errors when SQLite are preparing a statement now show the relevant \
extract of the query, and where the error was detected.
Shell: Output modes table (ASCII line drawing, lots of sanitization), box \
(Unicode line drawing) and qbox (box with quoted values) available. Python 3.7+ \
(APSW issue 420)
Shell: if started interactively then box is the default mode (list remains the \
default in non-interactive)
Added Connection.pragma() to execute pragmas and get results. (APSW issue 432)
Added Cursor.get returning query results with the least amount of structure. \
(APSW issue 389)
Fixed execution tracers should return comment text for comment only queries, and \
add Cursor.has_vdbe. (APSW issue 433)
Ensure that all applicable options are implemented for apsw.config(), \
Connection.config() and similar. (APSW issue 431)
Added apsw.sleep() (APSW issue 419)
Strings for apsw.VFS.xNextSystemCall() are interned avoiding memory leaks. (APSW \
issue 430)
Detect unbound recursion not handled by CPython, and handle better. (APSW issue 425)
|
2023-04-19 10:12:01 by Adam Ciarcinski | Files touched by this commit (2359) | |
Log message:
revbump after textproc/icu update
|
2023-03-29 15:04:34 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
py-apsw: updated to 3.41.2.0
3.41.2.0
Fixed APSW issue 412 in apsw.ext.make_virtual_module().
Added apsw.connections() to get all connections. (APSW issue 416)
sys.unraisablehook() is called correctly (APSW issue 410)
Be stricter where bool values are expected (eg VTTable.BestIndex()), only \
accepting int and bool. Previously you could for example supply strings and \
lists, which were almost certainly unintended errors.
|
2023-03-06 13:27:07 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
py-apsw: updated to 3.41.0.0
3.41.0.0
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)
|
2023-01-17 11:25:51 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
py-apsw: updated to 3.40.1.0
3.40.1.0
Implemented window functions (APSW issue 292)
Function flags can be specified to Connection.createscalarfunction() and \
Connection.createaggregatefunction(). Added apsw.mapping_function_flags. (APSW \
issue 384)
Added Connection.trace_v2() with apsw.mapping_trace_codes and \
apsw.mapping_statement_status (APSW issue 383)
Ensure all SQLite APIs are wrapped. Connection.system_errno, apsw.strlike(), \
apsw.strglob(), apsw.stricmp(), apsw.strnicmp(), Connection.filename_wal, \
Connection.filename_journal, Connection.table_exists(), \
Connection.column_metadata(), Error.error_offset, Connection.cacheflush(), \
Connection.release_memory(), apsw.hard_heap_limit(). Connection.drop_modules() \
(APSW issue 382)
When an unraisable exception happens, sqlite3_log is now called so you will have \
context within SQLite’s actions. sys.unraisablehook is now called first, and \
if it doesn’t exist then sys.excepthook as before. (APSW issue 385)
When the wrong type is given for a function argument, the error message now \
includes the parameter name and function signature. (APSW issue 358)
Let SQLite do size checking instead of APSW for strings and blobs. (APSW issue 387)
Added apsw.ext.log_sqlite() which installs a handler that forwards SQLite \
messages to the logging module.
Added set_default_vfs() and unregister_vfs() taking vfs names. The test suite \
also unregisters ZipVFS (APSW issue 394)
|
2022-11-28 10:18:54 by Adam Ciarcinski | Files touched by this commit (3) | |
Log message:
py-apsw: updated to 3.40.0.0
3.40.0.0
Fixed regression in statement cache update (version 3.38.1-r1) where trailing \
whitespace in queries would be incorrectly treated as incomplete execution (APSW \
issue 376)
Added Various interesting and useful bits of functionality (APSW issue 369)
Added more Pythonic attributes as an alternative to getters and setters, \
including Connection.in_transaction, Connection.exectrace, Connection.rowtrace, \
Cursor.exectrace, Cursor.rowtrace, Cursor.connection (APSW issue 371)
Completed: To the extent permitted by CPython APIs every item has the same \
docstring as this documentation. Every API can use named parameters. The type \
stubs cover everything including constants. The type stubs also include \
documentation for everything, which for example Visual Studio Code displays as \
you type or hover. There is a single source of documentation in the source code, \
which is then automatically extracted to make this documentation, docstrings, \
and docstrings in the type stubs.
Example/Tour updated and appearance improved (APSW issue 367).
|