Up to [cvs.NetBSD.org] / pkgsrc / databases / py-apsw
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
py-apsw: updated to 3.47.2.0 3.47.2.0 Added apsw.ext.page_usage_to_svg() which shows database usage as SVG (example). Available as shell .pages-svg command.
py-apsw: updated to 3.47.1.0 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.
py-apsw: updated to 3.47.0.0 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).
py-apsw: updated to 3.46.1.0 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.
py-apsw: updated to 3.46.0.1 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)
py-apsw: updated to 3.46.0.0 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)
py-apsw: updated to 3.45.3.0 3.45.3.0 No APSW changes.
py-apsw: updated to 3.45.2.0 3.45.2.0 Minor doc and tests change due to changed behaviour of sqlite3_serialize on an empty database, used by Connection.serialize().
py-apsw: updated to 3.45.1.0 3.45.1.0 No APSW changes.
py-apsw: updated to 3.45.0.0 3.45.0.0 Correctly handle NULL/None VFS filenames
py-apsw: updated to 3.44.2.0 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)
py-apsw: updated to 3.44.0.0 3.44.0.0 Added virtual table VTTable.Integrity() support. On 64 bit platforms with the amalgamation, SQLITE_MAX_MMAP_SIZE is set to 256 terabytes. SQLite’s default limit is 2GB. (APSW issue 491)`
py-apsw: updated to 3.43.2.0 3.43.2.0 Connection.create_aggregate_function() can take a class with step and final methods. (APSW issue 421) Corrected non PEP 8 compliant names. The old names remain as aliases to the new ones, and your code will not break.
py-apsw: updated to 3.43.1.1 3.43.1.1 Exception handling has been updated, with multiple exceptions in the same SQLite control flow being chained together. Previously more would have used the unraisable mechanism. (APSW issue 489) Only use alloca with msvc because it doesn't support VLA. The arrays are used for fastcall. (APSW issue 487)
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
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)
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)
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)
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)
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.
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)
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)
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).
py-apsw: updated to 3.39.4.0 3.39.4.0 Added Connection.cache_stats() to provide more information about the statement cache. Cursor.execute() now uses sqlite_prepare_v3 which allows supplying flags. Cursor.execute() has a new can_cache parameter to control whether the query can use the statement cache. One example use is with authorizers because they only run during prepare, which doesn’t happen with already cached statements. (The Cursor.execute() additional parameters are keyword only and also present in Cursor.executemany(), and the corresponding Connection.execute() and Connection.executemany() methods.) Added Cursor.is_readonly, Cursor.is_explain, and Cursor.expanded_sql. Updated processing named bindings so that types registered with collections.abc.Mapping (such as collections.UserDict) will also be treated as dictionaries. (APSW issue 373)
py-apsw: updated to 3.39.3.0 3.39.3.0 Test no longer fails if APSW was compiled without SQLITE_ENABLE_COLUMN_METADATA but sqlite3 was separately compiled with it. APSW should be compiled with the same flags as sqlite3 to match functionality and APIs. (APSW issue 363) –use-system-sqlite-config setup.py build_ext option added to allow Matching APSW and SQLite options. (APSW issue 364)
py-apsw: updated to 3.39.2.1 3.39.2.1 PyPI now includes Python 3.11 builds. Instead of using scripts, you can now run several tools directly: tests: python3 -m apsw.tests [options] tracer: python3 -m apsw.trace [options] speed tester: python3 -m apsw.speedtest [options] shell: python3 -m apsw [options] The shell class has moved from apsw.Shell to apsw.shell.Shell (APSW issue 356). You can still reference it via the old name (ie existing code will not break, except on Python 3.6). Shell: On Windows the native console support for colour is now used (previously a third party module was supported). You can use –definevalues in setup.py build_ext to provide compiler defines used for configuring SQLite. (APSW issue 357) If SQLITE_ENABLE_COLUMN_METADATA is enabled then Cursor.description_full is available providing all the column metadata available. (APSW issue 354) Connection.cursor_factory attribute is now present and is used when Connection.cursor() is called. Added Connection.execute() and Connection.executemany() which automatically obtain the underlying cursor. See customizing connections and cursors in the Tips. (APSW issue 361) 3.39.2.0 Version numbering scheme change: Instead of a -r1 style suffix, there is .0 style suffix (APSW issue 340) Updated building for PyPI to include more compiled platforms, including aarch64 (Linux) and universal (MacOS). Windows binaries are no longer separately provided since PyPI has them. When the amalgamation is included into APSW, SQLITE_MAX_ATTACHED is set to 125 if not defined, up from the default of 10. Updated typing information stubs with more detail and include docstrings. This is still ongoing, but core functionality is well covered. (APSW issue 338) (APSW issue 381) Corrected the tips log handler of extended result code (APSW issue 342) Added Connection.db_names() (APSW issue 343)
py-apsw: updated to 3.37.0 3.37.0-r1 Allow breaking of reference cycles between objects that contain a Connection or Cursor, and also use callbacks from that object (eg busy handler). This is the last release supporting Python 2 and Python 3 before 3.7. If you still use those Python versions then you should pin to this APSW version. (More information). Windows Python 3.10 binaries are available to download. The .exe format is no longer available with this Python version. Fixed custom VFS extension loading failure could leave the error message unterminated. Updated size of mutex array used by the fork checker Connections are opened with SQLITE_OPEN_EXRESCODE so open errors will also include extended result codes. Connection.changes() and Connection.totalchanges() use the new SQLite APIs that return 64 bit values (ie can now return values greater than 2 billion). Added Connection.autovacuum_pages(). Added constants: SQLITE_CONSTRAINT_DATATYPE, SQLITE_OPEN_EXRESCODE
databases: Replace RMD160 checksums with BLAKE2s checksums All checksums have been double-checked against existing RMD160 and SHA512 hashes The following distfiles could not be fetched (some may be only fetched conditionally): ./databases/cstore/distinfo D6.data.ros.gz ./databases/cstore/distinfo cstore0.2.tar.gz ./databases/cstore/distinfo data4.tar.gz
databases: Remove SHA1 distfile hashes
py-apsw: updated to 3.36.0 3.36.0-r1 Implemented Connection.serialize() and Connection.deserialize(). They turn a database into bytes, and bytes into a database respectively. Allow any subclass of VFS to implement WAL, not just direct subclasses. (APSW issue 311) Added constants: SQLITE_FCNTL_EXTERNAL_READER, SQLITE_FCNTL_CKSM_FILE
py-apsw: updated to 3.35.4 3.35.4-r1 Updates for SQLite download url (the year is part of the urls). Added enable flag for built-in SQL math functions, and enable it by default with –enable-all-extensions. Use the newer buffer API for Python 3 (old API removed in Python 3.10).
py-apsw: updated to 3.34.0 3.34.0-r1 Windows MSI installer files are now provided in addition to the exe files (APSW issue 294), as well as wheels for Python 3.6+. Python 3.9 binaries are also now available. The wheels can be installed via pip. Added Connection.txn_state() Added constants: SQLITE_IOERR_CORRUPTFS
py-apsw: updated to 3.33.0 3.33.0-r1 Small performance improvement in string handling apsw module exposes Cursor, Blob, and Backup types (APSW issue 273) pkg-config is used to detect International Components for Unicode (ICU) sdk when the SQLite ICU extension <https://www.sqlite.org/src/artifact?ci=trunk&filename=ext/icu/README.txt>`___ is enabled. It falls back to icu-config as before.. Added constants: SQLITE_OPEN_SUPER_JOURNAL
py-apsw: updated to 3.32.2 3.32.2-r1 Added constants: SQLITE_IOERR_DATA, SQLITE_CORRUPT_INDEX, SQLITE_BUSY_TIMEOUT, SQLITE_FCNTL_CKPT_START, SQLITE_FCNTL_RESERVE_BYTES
py-apsw: updated to 3.31.1 3.31.1-r1 Various updates due to year change Fix deprecated universal newline use in shell Shell now uses pragma function_list to get list of functions for tab completion Added constants: SQLITE_DBCONFIG_TRUSTED_SCHEMA, SQLITE_DBCONFIG_LEGACY_FILE_FORMAT, SQLITE_CONSTRAINT_PINNED, SQLITE_OK_SYMLINK, SQLITE_CANTOPEN_SYMLINK, SQLITE_FCNTL_CKPT_DONE, SQLITE_OPEN_NOFOLLOW, SQLITE_VTAB_DIRECTONLY
py-apsw: updated to 3.30.1 3.30.1-r1 Added constants: SQLITE_DBCONFIG_ENABLE_VIEW Updated hashing of SQL statements Python 3.8 Windows binaries available.
py-apsw: updated to 3.29.0 3.29.0: Added constants: SQLITE_DBCONFIG_DQS_DML, SQLITE_DBCONFIG_DQS_DDL, SQLITE_DBCONFIG_LEGACY_ALTER_TABLE Updated Connection.config() with all current SQLITE_DBCONFIG constants. Also fixes APSW issue 249
py-apsw: updated to 3.28.0 3.28.0-r1 Added constant: SQLITE_DBCONFIG_WRITABLE_SCHEMA
py-apsw: updated to 3.27.2 3.27.2-r1 Added constants: * SQLITE_CONFIG_MEMDB_MAXSIZE, SQLITE_FCNTL_SIZE_LIMIT Added support for the geopoly extension Removed hash optimisation that isn’t useful any more
py-apsw: updated to 3.26.0 3.26.0-r1 Added constant: SQLITE_DBCONFIG_DEFENSIVE
py-apsw: updated to 3.25.1 3.25.1: Added constants: SQLITE_INDEX_CONSTRAINT_FUNCTION, SQLITE_CANTOPEN_DIRTYWAL, SQLITE_ERROR_SNAPSHOT, SQLITE_FCNTL_DATA_VERSION Shell output mode now has lines and columns for compatibility (APSW issue 214) Example now runs under both Python 2 and 3.
py-apsw: updated to 3.24.0 3.24.0-r1 Added constants: * SQLITE_DBCONFIG_RESET_DATABASE, and support for it in Connection.config() * SQLITE_LOCKED_VTAB, and SQLITE_CORRUPT_SEQUENCE extended result codes Added keywords and updated the shell to use it.
py-apsw: updated to 3.23.1 3.23.1: Added constants: SQLITE_DBSTATUS_CACHE_SPILL, SQLITE_FCNTL_LOCK_TIMEOUT
py-apsw: updated to 3.22.0 3.22.0: Added constants: SQLITE_DBCONFIG_TRIGGER_EQP, SQLITE_DBCONFIG_MAX SQLITE_READONLY_CANTINIT, SQLITE_ERROR_RETRY, SQLITE_ERROR_MISSING_COLLSEQ, SQLITE_READONLY_DIRECTORY
py-apsw: updated to 3.21.0 3.21.0: Added constants: SQLITE_INDEX_CONSTRAINT_ISNULL, SQLITE_INDEX_CONSTRAINT_ISNOT, SQLITE_INDEX_CONSTRAINT_ISNOTNULL, SQLITE_INDEX_CONSTRAINT_IS and SQLITE_INDEX_CONSTRAINT_NE SQLITE_CONFIG_SMALL_MALLOC SQLITE_IOCAP_BATCH_ATOMIC SQLITE_IOERR_ROLLBACK_ATOMIC, SQLITE_IOERR_COMMIT_ATOMIC and SQLITE_IOERR_BEGIN_ATOMIC SQLITE_FCNTL_COMMIT_ATOMIC_WRITE, SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE and SQLITE_FCNTL_BEGIN_ATOMIC_WRITE
3.20.1: Added SQLITE_DBCONFIG_ENABLE_QPSG constant. Added shell .open command (APSW issue 240)
3.19.3-r1: No APSW changes. Now we're in sync with databases/sqlite3
Add SHA512 digests for distfiles for databases category Problems found with existing distfiles: distfiles/D6.data.ros.gz distfiles/cstore0.2.tar.gz distfiles/data4.tar.gz distfiles/sphinx-2.2.7-release.tar.gz No changes made to the cstore or mariadb55-client distinfo files. Otherwise, existing SHA1 digests verified and found to be the same on the machine holding the existing distfiles (morden). All existing SHA1 digests retained for now as an audit trail.
Import py27-apsw-3.8.4.2pl1 as databases/py-apsw, packaged for wip by rhialto. APSW provides an SQLite 3 wrapper that provides the thinnest layer over the SQLite database library possible. Everything you can do from the SQLite C API, you can do from Python. Although APSW looks vaguely similar to the PEP 249 (DBAPI), it is not compliant with that API because instead it works the way SQLite 3 does.