Apsw

Latest version: v3.47.2.0

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

Scan your dependencies

Page 3 of 24

3.43.2.0

========

:meth:`Connection.create_aggregate_function` can take a class with step
and final methods. (:issue:`421`)

Corrected non :pep:`8` :ref:`compliant names <renaming>`. The old
names remain as aliases to the new ones, and your code will not break.

3.43.1.1

========

:doc:`Exception <exceptions>` handling has been updated, with multiple
exceptions in the same SQLite control flow being chained together.
Previously more would have used the :ref:`unraisable <unraisable>`
mechanism. (:issue:`489`)

Only use alloca with msvc because it doesn't support `VLA
<https://en.wikipedia.org/wiki/Variable-length_array>`__. The arrays
are used for fastcall. (:issue:`487`)

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. (:issue:`477`,
:issue:`446`):

* Conversion of arguments from Python values to C values drops generic
:c:func:`PyArg_ParseTupleAndKeywords` in favour of direct processing
which is more efficient and allows better exception messages.

* Running :ref:`speedtest` with a VFS that inherits all methods went
from being 17% slower than pure SQLite to 2% slower.

* A :source:`virtual table benchmark <tools/vtbench.py>` takes 35%
less time. (Remember that benchmarks are best case!)

The :doc:`shell <shell>` JSON output modes have been fixed. Mode
'json' outputs a json array, while mode 'jsonl' does newline delimited
json objects, aka `json lines <https://jsonlines.org/>`__.
(:issue:`483`)

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 :doc:`about <about>` page
is that there will be one more APSW release after a Python version
goes end of life supporting that Python version. (:issue:`471`)

Added :doc:`best practice <bestpractice>` module (:issue:`460`)

:meth:`apsw.ext.log_sqlite` outputs SQLite warnings at warning level.
(:issue:`472`)

`sqlite3_stmt_explain <https://sqlite.org/c3ref/stmt_explain.html>`__
is wrapped available as a `explain` keyword parameter on
execute/executemany methods. (:issue:`474`)

Added documentation and :class:`helper class <VFSFcntlPragma>` for
implementing custom `pragmas <https://sqlite.org/pragma.html>`__ in
your own :ref:`VFS` (:issue:`464`)

Reduced overhead of the Column method when using
:meth:`apsw.ext.make_virtual_module` (:issue:`465`)

3.42.0.1

========

Work with SQLite compiled with `SQLITE_OMIT_DEPRECATED
<https://www.sqlite.org/compile.html#omit_deprecated>`__.
:meth:`Connection.set_profile` was changed from using the deprecated
`sqlite3_profile <https://sqlite.org/c3ref/profile.html>`__ to
`sqlite3_trace_v2 <https://sqlite.org/c3ref/trace_v2.html>`__ giving
the same results. When including the amalgamation,
SQLITE_OMIT_DEPRECATED is defined. (:issue:`443`)

:doc:`shell` updates adding :ref:`various commands <shell-commands>`
to match the SQLite shell, as well as code and documentation
improvements. (:issue:`397`)

Added :meth:`Connection.read` and :func:`apsw.ext.dbinfo` to provide
information from the database and journal/wal files. The shell
command :ref:`.dbinfo <shell-cmd-dbinfo>` displays it.

Added :meth:`apsw.vfs_details`. The shell command
:ref:`.vfslist <shell-cmd-vfslist>` displays it.

Implemented `VFS method xCurrentTimeInt64
<https://sqlite.org/c3ref/vfs.html>`__. 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. (: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 :class:`VFS`,
or use ``iVersion`` of ``1``.

:ref:`speedtest` now shows summary statistics, and improved help text.
(:issue:`444`)

3.42.0.0

========

`SQLITE_ENABLE_COLUMN_METADATA
<https://www.sqlite.org/compile.html#enable_column_metadata>`__ is
enabled when installing APSW from `PyPI <https://pypi.org/project/apsw/>`__
(binary or source). (:issue:`435`)

:ref:`Type stubs <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.) (: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+ (:issue:`420`)

Shell: if started interactively then box is the default mode (list remains
the default in non-interactive)

Added :meth:`Connection.pragma` to execute pragmas
and get results. (:issue:`432`)

Added :attr:`Cursor.get` returning query results with the
least amount of structure. (:issue:`389`)

Fixed execution tracers should return comment text for comment
only queries, and add :attr:`Cursor.has_vdbe`. (:issue:`433`)

Ensure that all applicable options are implemented for
:func:`apsw.config`, :meth:`Connection.config` and similar.
(:issue:`431`)

Added :func:`apsw.sleep` (:issue:`419`)

Strings for :meth:`apsw.VFS.xNextSystemCall` are :c:func:`interned
<PyUnicode_InternInPlace>` avoiding memory leaks. (:issue:`430`)

Detect unbound recursion not handled by CPython, and handle better.
(:issue:`425`)

Page 3 of 24

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.