========
Added several new constants.
`Write Ahead Logging <https://sqlite.org/wal.html>`__ is
:ref:`supported <wal>`. You can make all databases automatically use
WAL mode if available by using :ref:`connection hooks <wal>`.
Added :meth:`format_sql_value` for generating a SQL syntax string from
a value. This is implemented in C and is significantly faster than
doing the same formatting in Python.
Using the above function and other tweaks the :ref:`shell` dumper is
now three to four times faster. Thanks to Nikolaus Rath for pointing
out the problem and providing test data.
The shell now does colour highlighting making it easy to visually
distinguish prompts, errors, headers and value types when outputting
to a terminal. See the `--no-colour` argument and **.colour**
command. Those of you in the two countries that have not adopted the
metric system may also omit the 'u'. For Windows users you won't get
colour output unless you install `colorama
<https://pypi.python.org/pypi/colorama>`__
When using the context manager (with statement) of a
:class:`Connection` and the exit commit had an error, then the
transaction is rolled back. This could occur if SQLite had buffered
the transaction entirely in memory and a non-eager transaction lock
had been obtained. Thanks to Geoff Ness for finding the problem.
(:issue:`98`).
Fixed bug when an error is returned creating an instance of a virtual
table (eg an invalid column name). Before the fix you would get the
previous error message or a crash. Thanks to Jose Gomes for finding
the problem. :issue:`103`
There is now a PPA for Ubuntu users that is kept up to date with APSW
and SQLite at \https://launchpad.net/~ubuntu-rogerbinns/+archive/apsw
which has the latest SQLite embedded statically inside (ie system
SQLite is ignored) and has all the extensions enabled: FTS3, RTree,
ICU, asyncvfs
If you open VFS files directly then the filename is always run through
xFullPathname first. SQLite guarantees this behaviour but the
existing VFS code was not doing that for direct opens. Opens from
SQLite were doing it.
Fixed error where :attr:`apsw.connection_hooks` were being run before
the :ref:`statement cache <statementcache>` was initialised which would
result in a crash if any hooks executed SQL code.