Apsw-sqlite3mc

Latest version: v3.47.2.0

Safety actively analyzes 688649 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 24

3.41.2.0

========

Fixed :issue:`412` in :meth:`apsw.ext.make_virtual_module`.

Added :meth:`apsw.connections` to get all connections. (:issue:`416`)

:func:`sys.unraisablehook` is called correctly (:issue:`410`)

Be stricter where :class:`bool` values are expected (eg
:meth:`VTTable.BestIndex`), only accepting :class:`int` and
:class:`bool`. Previously you could for example supply strings and
lists, which were almost certainly unintended errors.

3.41.0.0

========

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

Virtual table updates:

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

* :meth:`IndexInfo.set_aConstraintUsage_in` can have *in* values
passed all at once to :meth:`VTCursor.Filter`

* Exceptions in :meth:`VTTable.FindFunction` are now reported as
an :ref:`unraisable exception <unraisable>` because it isn't
possible to tell SQLite about the error.

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

* Added :meth:`Connection.vtab_config` and
:meth:`Connection.vtab_on_conflict` (:issue:`189`, :issue:`190`)

* :meth:`Connection.create_module` lets you have `eponymous
<https://sqlite.org/vtab.html#eponymous_virtual_tables>`__,
`eponymous_only
<https://sqlite.org/vtab.html#eponymous_only_virtual_tables>`__, and
read_only modules. (:issue:`196`)

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

* All `virtual table methods <https://www.sqlite.org/c3ref/module.html>`__
are supported - added *iVersion* 2 and 3. You can specify the
*iVersion* in :meth:`Connection.create_module` (:issue:`128`)

* :meth:`apsw.ext.make_virtual_module` makes it very easy to turn
a Python function into a virtual table module.

* :meth:`apsw.ext.generate_series` and :meth:`apsw.ext.generate_series_sqlite`
added. (:issue:`380`)

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

Added :meth:`apsw.ext.format_query_table` for handy table output
with auto column sizes, colour, word wrap etc.

Added :meth:`Connection.is_interrupted`.

3.40.1.0

========

Implemented `window functions
<https://www.sqlite.org/windowfunctions.html#udfwinfunc>`__
(:issue:`292`)

`Function flags <https://www.sqlite.org/c3ref/c_deterministic.html>`__
can be specified to :meth:`Connection.create_scalar_function` and
:meth:`Connection.create_aggregate_function`. Added
:attr:`apsw.mapping_function_flags`. (:issue:`384`)

Added :meth:`Connection.trace_v2` with :attr:`apsw.mapping_trace_codes`
and :attr:`apsw.mapping_statement_status` (:issue:`383`)

Ensure all SQLite APIs are wrapped. :attr:`Connection.system_errno`,
:meth:`apsw.strlike`, :meth:`apsw.strglob`, :meth:`apsw.stricmp`,
:meth:`apsw.strnicmp`, :attr:`Connection.filename_wal`,
:attr:`Connection.filename_journal`, :meth:`Connection.table_exists`,
:meth:`Connection.column_metadata`, :attr:`Error.error_offset`,
:meth:`Connection.cache_flush`, :meth:`Connection.release_memory`,
:meth:`apsw.hard_heap_limit`. :meth:`Connection.drop_modules`
(:issue:`382`)

When an :ref:`unraisable exception <unraisable>` happens, `sqlite3_log
<https://www.sqlite.org/c3ref/log.html>`__ is now called so you will
have context within SQLite's actions. :func:`sys.unraisablehook` is
now called first, and if it doesn't exist then :func:`sys.excepthook`
as before. (:issue:`385`)

When the wrong type is given for a function argument, the error
message now includes the parameter name and function signature.
(:issue:`358`)

Let SQLite do size checking instead of APSW for strings and blobs.
(:issue:`387`)

Added :meth:`apsw.ext.log_sqlite` which installs a handler that
forwards SQLite messages to the :mod:`logging module <logging>`.

Added :meth:`set_default_vfs` and :meth:`unregister_vfs` taking vfs
names. The test suite also unregisters `ZipVFS
<https://www.sqlite.org/zipvfs/doc/trunk/www/index.wiki>`__
(:issue:`394`)

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 (:issue:`376`)

Added :doc:`ext` (:issue:`369`)

Added more Pythonic attributes as an alternative to getters and
setters, including :attr:`Connection.in_transaction`,
:attr:`Connection.exec_trace`, :attr:`Connection.row_trace`,
:attr:`Cursor.exec_trace`, :attr:`Cursor.row_trace`,
:attr:`Cursor.connection` (: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 :source:`type stubs <apsw/__init__.pyi>` 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.

:doc:`example` updated and appearance improved (:issue:`367`).

3.39.4.0

========

Added :meth:`Connection.cache_stats` to provide more information about
the statement cache.

:meth:`Cursor.execute` now uses `sqlite_prepare_v3
<https://sqlite.org/c3ref/prepare.html>`__ which allows supplying
`flags <https://sqlite.org/c3ref/c_prepare_normalize.html#sqlitepreparenormalize>`__.

:meth:`Cursor.execute` has a new `can_cache` parameter to control
whether the query can use the statement cache. One example use is
with :meth:`authorizers <Connection.set_authorizer>` because they only
run during prepare, which doesn't happen with already cached
statements.

(The :meth:`Cursor.execute` additional parameters are keyword only and
also present in :meth:`Cursor.executemany`, and the corresponding
:meth:`Connection.execute` and :meth:`Connection.executemany`
methods.)

Added :attr:`Cursor.is_readonly`, :attr:`Cursor.is_explain`, and
:attr:`Cursor.expanded_sql`.

Updated processing named bindings so that types registered with
:class:`collections.abc.Mapping` (such as
:class:`collections.UserDict`) will also be treated as dictionaries.
(:issue:`373`)

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. (:issue:`363`)

`--use-system-sqlite-config` setup.py `build_ext` option added to
allow :ref:`matching_sqlite_options`. (:issue:`364`)

Page 4 of 24

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.