Apsw-sqleet

Latest version: v3.28.0.post2

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

Scan your dependencies

Page 16 of 18

3.3.13r1

=========

As of this release, APSW is now co-hosted with pysqlite meaning there
is one site to go to for your Python SQLite bindings. (Both projects
subsequently moved to Google Code.)

You can use this with SQLite 3.3.13 onwards. There were no API changes
in SQLite 3.3.10 to 3.3.13 although some internal bugs were fixed and
the 3.3.13 release is recommended over the earlier version.

Thanks to Ed Pasma for highlighting these issues:

* :func:`Connection.interrupt` can be safely called from any thread.

* Empty statements or those consisting entirely of whitespace do not
cause misuse errors (internally SQLite started returned NULL pointers
for those statements, and `sqlite3_step
<https://sqlite.org/c3ref/step.html>`_ didn't like being passed the
NULL pointer).

* Changed special handling of :const:`SQLITE_BUSY` error to be the same
as other errors. The special handling previously let you restart on
receiving busy, but also hung onto statements which could result in
other statements getting busy errors.

3.3.10r1

=========

You can use this with SQLite 3.3.10 onwards.

Added a statement cache that works in conjunction with the
`sqlite3_prepare_v2 <https://sqlite.org/c3ref/prepare.html>`_ API. A
few issues were exposed in SQLite and hence you must use SQLite 3.3.10
or later.

3.3.9r1

========
You can use this with SQLite 3.3.9 onwards.

SQLite added `sqlite3_prepare_v2
<https://sqlite.org/c3ref/prepare.html>`_ API. The net effect of this
API update is that you will not get SQLITE_SCHEMA any more. SQLite
will handle it internally.

3.3.8r1

========

You can use this with SQLite 3.3.8 onwards. There was an incompatible
API change for virtual tables in SQLite 3.3.8.

Virtual tables updated for new api.

You must call :func:`~Connection.close` on connections. You can
also call :func:`~Cursor.close` on cursors, but it usually isn't
necessary.

All strings are returned as unicode.

:func:`PyErr_WriteUnraisable` was used for errors in
destructors. Unfortunately it is almost completely useless, merely
printing :func:`str` of the object and exception. This doesn't help in
finding where in your code the issue arose so you could fix it. An
internal APSW implementation generates a traceback and calls
:func:`sys.excepthook`, the default implementation of which prints the
exception and the traceback to sys.stderr.

.. Note:: The line number reported in the traceback is often off by
1. This is because the destructors run "between" lines of
code and so the following line is reported as the current
location.

Authorizer codes :const:`SQLITE_CREATE_VTABLE`,
:const:`SQLITE_DROP_VTABLE` and :const:`SQLITE_FUNCTION` added.

SQLite `extended result codes
<https://sqlite.org/cvstrac/wiki?p=ExtendedResultCodes>`_ are
available - see :ref:`exceptions` for more detail.

:data:`Connection.hooks` added so you can easily register functions,
virtual tables or similar items with each Connection as it is created.

Added :ref:`mapping dicts <sqliteconstants>` which makes it easy to
map the various constants between strings and ints.

3.3.7r1

========

Never released as 3.3.8 came along.

You can use this release against SQLite 3.3.7. There were no changes
in the SQLite 3.3.6 API from 3.3.5. In SQLite 3.3.7 an API was added
that allowed removing a chunk of duplicate code. Also added were
`Virtual Tables <https://sqlite.org/cvstrac/wiki?p=VirtualTables>`_
and loading of external modules (shared libraries).

APSW had the following changes:

* Even more test cases added (you can't have too many tests :-)
* When exceptions occur, dummy frames are added to the traceback in the
C code. This makes it a lot easier to tell why code was called if you
encounter an exception. See :ref:`augmented stack traces
<augmentedstacktraces>` for details.
* String values (traditional and Unicode) work correctly if they have
embedded NULL characters (ie not truncated at the NULL).
* You can load SQLite shared library extensions.

3.3.5r1

========

You can use this release against any release of SQLite 3 from 3.3.5
onwards. A bug was also fixed when reporting an error during the
cleanup of an aggregate function if there had also been an error in
the step function. (:func:`PyErr_WriteUnraisable(NULL)` crashed on
some versions of Python but not others.)

SQLite added several functions for returning metadata about result
column sets. You have to compile SQLite with
:const:`SQLITE_ENABLE_COLUMN_METADATA` to get them. This is not the
default for SQLite. I don't believe these are generally useful except
in some corner cases and so they aren't wrapped. However please shout
if you do need them. Note that :func:`Cursor.getdescription` will
already give you generally useful information. (Also see the `pragmas
<https://sqlite.org/pragma.html>`_)

The test code has been converted into using the unittest module. Run
:command:`python tests.py -v` to get the tests run. There should be no
errors.

Updated code to work correctly with new :c:type:`Py_ssize_t` introduced
in Python 2.5. See :ref:`64 bit hosts, Python 2.5+ <x64bitpy25>` for
more details on how Python and SQLite handle 64 bit sized items.

The following functions were added to SQLite and are wrapped. They are
all functions defined on the :class:`Connection` object or :mod:`apsw`
module:

* `sqlite3_update_hook <https://sqlite.org/c3ref/update_hook.html>`_
* `sqlite3_rollback_hook <https://sqlite.org/c3ref/commit_hook.html>`_
* `sqlite3_enable_shared_cache <https://sqlite.org/c3ref/enable_shared_cache.html>`_
* `sqlite3_get_autocommit <https://sqlite.org/c3ref/get_autocommit.html>`_
* `sqlite3_profile <https://sqlite.org/c3ref/profile.html>`_ This
callback is run at the end of each statement execution telling you how
long it took.

Page 16 of 18

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.