Skip to content

Commit

Permalink
More updates for GC to GH change
Browse files Browse the repository at this point in the history
  • Loading branch information
rogerbinns committed Dec 29, 2013
1 parent 0f0e4de commit 2442b96
Show file tree
Hide file tree
Showing 13 changed files with 89 additions and 111 deletions.
2 changes: 1 addition & 1 deletion MANIFEST.in
Expand Up @@ -16,7 +16,7 @@ include src/util.c
include src/vfs.c
include src/vtable.c

# See http://code.google.com/p/apsw/issues/detail?id=89
# See https://github.com/rogerbinns/apsw/issues/89
include MANIFEST.in

# other files
Expand Down
23 changes: 9 additions & 14 deletions doc/build.rst
Expand Up @@ -105,9 +105,8 @@ re-fetching.
have no way of verifying they were produced by the SQLite team or
were not modified between the SQLite servers and your computer.

Consequently APSW ships with a :file:`checksums` `file
<https://code.google.com/p/apsw/source/browse/checksums>`__ that
includes checksums for the various SQLite downloads. If the
Consequently APSW ships with a :source:`checksums file <checksums>`
that includes checksums for the various SQLite downloads. If the
download does not match the checksum then it is rejected and an
error occurs.

Expand Down Expand Up @@ -334,25 +333,21 @@ the issue doesn't happen or doesn't happen again.::

The tests also ensure that as much APSW code as possible is executed
including alternate paths through the code. 95.5% of the APSW code is
executed by the tests. If you checkout the APSW source then there is
an script `coverage.sh
<https://code.google.com/p/apsw/source/browse/tools/coverage.sh>`_
that enables extra code that deliberately induces extra conditions
such as memory allocation failures, SQLite returning undocumented
error codes etc. That brings coverage up to 99.6% of the code.
executed by the tests. If you checkout the APSW source then there is a
script :source:`coverage.sh` that enables extra code that deliberately
induces extra conditions such as memory allocation failures, SQLite
returning undocumented error codes etc. That brings coverage up to
99.6% of the code.

A memory checker `Valgrind <http://valgrind.org>`_ is used while
running the test suite. The test suite is run 150 times to make any
memory leaks or similar issues stand out. A checking version of Python
is also used. See `valgrind.sh
<https://code.google.com/p/apsw/source/browse/tools/valgrind.sh>`_
in the source.
is also used. See :source:`valgrind.sh` in the source.

To ensure compatibility with the various Python versions, a script
downloads and compiles all supported Python versions in both 2 byte
and 4 byte Unicode character configurations against the APSW and
SQLite supported versions running the tests. See `megatest.py
<https://code.google.com/p/apsw/source/browse/tools/megatest.py>`_
SQLite supported versions running the tests. See :source:`megatest.py`
in the source.

In short both SQLite and APSW have a lot of testing!
94 changes: 41 additions & 53 deletions doc/changes.rst
Expand Up @@ -2,6 +2,11 @@ Change History
**************
.. currentmodule:: apsw

next
====

APSW is now hosted at Github - https://github.com/rogerbinns/apsw

3.8.2-r1
========

Expand Down Expand Up @@ -413,13 +418,12 @@ When using the context manager (with statement) of a
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 <https://code.google.com/p/apsw/issues/detail?id=98>`__).
(: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
<https://code.google.com/p/apsw/issues/detail?id=103>`__).
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
Expand Down Expand Up @@ -469,13 +473,11 @@ Made it possible to run distutils 'sdist' from an already produced
source that was made from 'sdist'. This was necessary for some Python
virtual package environments. Note that the recursive result does not
include the HTML help as distutils has no way of including content in
a reparented location. (`Issue 89
<https://code.google.com/p/apsw/issues/detail?id=89>`__).
a reparented location. :issue:`89`

Various settings are output as pragma statements when making a dump
such as page size, encoding, auto_vacuum etc. The pragmas are
commented out. (`Issue 90
<https://code.google.com/p/apsw/issues/detail?id=90>`__).
commented out. :issue:`90`

3.6.21-r1
=========
Expand All @@ -498,11 +500,9 @@ Support for Python 3.0 has been dropped as it has been `end of lifed
onwards.

Changes to how some statements are `prepared
<https://sqlite.org/c3ref/prepare.html>`__ to allow the new RANGE
and LIKE optimisations with bound variables introduced in SQLite
3.6.20 to be used. See `issue 85
<https://code.google.com/p/apsw/issues/detail?id=85>`__ for the long
and gory details.
<https://sqlite.org/c3ref/prepare.html>`__ to allow the new RANGE and
LIKE optimisations with bound variables introduced in SQLite 3.6.20 to
be used. See :issue:`85` for the long and gory details.

You can now access `CouchDB <http://couchdb.apache.org>`__ using a
virtual table. This lets you easily bidirectionally transfer data
Expand All @@ -513,8 +513,7 @@ the same time. Other example uses are in the documentation.

* .dump command now outputs views in the order they were created
rather than alphabetical as views could reference each
other. (`Issue 82
<https://code.google.com/p/apsw/issues/detail?id=82>`__)
other. :issue:`82`

* .dump command now outputs the `user_version
<https://sqlite.org/pragma.html#version>`__ as a comment. It is
Expand All @@ -523,18 +522,14 @@ the same time. Other example uses are in the documentation.

* Can now output in `JSON <http://json.org>`__.

* Fixed `Issue 83
<https://code.google.com/p/apsw/issues/detail?id=83>`__ - exception
if history file didn't exist
* Fixed :issue:`83` - exception if history file didn't exist

* You can right justify output in column mode by specifying negative
widths. (`Issue 84
<https://code.google.com/p/apsw/issues/detail?id=84>`__)
widths. :issue:`84`

* You no longer get a traceback doing completions if there is a
virtual table in the database but the module is not loaded.
(`Issue 86
<https://code.google.com/p/apsw/issues/detail?id=86>`__)
:issue:`86`

* You can now get detailed tracebacks including local variables using
the ".exception ON" command. This is useful when developing
Expand All @@ -546,12 +541,11 @@ the same time. Other example uses are in the documentation.
3.6.19-r1
=========

**Backwards incompatible change** Fixed `issue 72
<https://code.google.com/p/apsw/issues/detail?id=72>`__ where APSW
wasn't zero basing virtual table :meth:`~VTTable.BestIndex`
constraints returned as documented. If you have working BestIndex
code then you need to update it for this release. Thanks to Lefteris
for finding this issue.
**Backwards incompatible change** Fixed :issue:`72` where APSW wasn't
zero basing virtual table :meth:`~VTTable.BestIndex` constraints
returned as documented. If you have working BestIndex code then you
need to update it for this release. Thanks to Lefteris for finding
this issue.

**Backwards incompatible change** The :meth:`~apsw.complete` method
has moved from :class:`Connection` to :mod:`apsw` where it should have
Expand Down Expand Up @@ -598,8 +592,7 @@ amalgamation and compiled out when using existing libraries. This is
more likely to match your machine. You can use
:option:`--omit=load_extension` or :option:`--enable=load_extension`
to the build/build_ext commands to explicitly disable/enable extension
loading. (`Issue 67
<https://code.google.com/p/apsw/issues/detail?id=67>`__).
loading. :issue:`67`

:ref:`setup.py <building>` will now abort on a download that has no
checksum. See :ref:`more information <fetch_checksums>` on checksums.
Expand Down Expand Up @@ -649,9 +642,8 @@ The test suite will now check the functionality of the FTS3, RTree and
ICU extensions if they were included. (The Windows binary distribution
includes FTS3 and RTree by default.)

Fixed `issue 55 <https://code.google.com/p/apsw/issues/detail?id=55>`_
where FTS3 was unintentionally omitted from the Windows binary
distribution.
Fixed :issue:`55` where FTS3 was unintentionally omitted from the
Windows binary distribution.

Various documentation updates.

Expand All @@ -665,9 +657,9 @@ Trivial tweaks to keep MSVC happy.
3.6.15-r1
=========

Fixed `issue 50 <https://code.google.com/p/apsw/issues/detail?id=50>`_
where :meth:`blob.read` was returning :const:`None` on end of file
instead of the documented (and correct) empty string/bytes.
Fixed :issue:`50` where :meth:`blob.read` was returning :const:`None`
on end of file instead of the documented (and correct) empty
string/bytes.

Corrected spelling of option in :ref:`apswtrace <apswtrace>` and only
output CURSORFROM if SQL tracing is on.
Expand Down Expand Up @@ -780,10 +772,9 @@ Various changes in data structures and containers to reduce code size.

Changed the code to handle SQLite errors to only use Python
functionality and no operating system functionality (thread local
storage). This also addresses `issue 36
<https://code.google.com/p/apsw/issues/detail?id=36>`_ where Vista was
not binary compatible with XP. Thanks to Rudolf Gaertner for
assistance in detecting and diagnosing this issue.
storage). This also addresses :issue:`36` where Vista was not binary
compatible with XP. Thanks to Rudolf Gaertner for assistance in
detecting and diagnosing this issue.

:class:`Connections <Connection>`, :class:`cursors <Cursor>` and
:class:`blobs <blob>` can be used by `weak references
Expand Down Expand Up @@ -840,8 +831,7 @@ It was possible to get a deadlock between the Python GIL and the
SQLite database mutex when using the same :class:`Connection` across
multiple threads. Fixed by releasing the GIL in more places and added
test that inspects the source to verify GIL/mutex handling. Thanks to
amicitas reporting this as `issue 31
<https://code.google.com/p/apsw/issues/detail?id=31>`_.
amicitas reporting this as :issue:`31`

SQLite's API has been extended in 3.6.5 so that errors can be
retrieved in a thread safe manner. APSW now uses this API.
Expand Down Expand Up @@ -910,17 +900,17 @@ useful you can do with them (yet):
Restored prior behaviour regarding Python ints and longs returning int
for numbers fitting in signed 32 bit. This only affects Python 2 as
Python 3 uses long exclusively. Thanks to Joe Pham for reporting this
as `issue 24 <https://code.google.com/p/apsw/issues/detail?id=24>`_.
as :issue:`24`

Added :meth:`Connection.getsqlite3pointer` method to help with
`issue 26 <https://code.google.com/p/apsw/issues/detail?id=26>`_.
:issue:`26`

3.5.9-r2
========

APSW now works with Python 3 (you need 3.0b1 or later).

(`Issue 17 <https://code.google.com/p/apsw/issues/detail?id=17>`_)
(:issue:`17`)
Removed the :const:`SQLITE_MAX_*` constants since they could be
unreliable (eg APSW can't tell what a shared library was compiled
with). A workaround is documented in :func:`Connection.limit`.
Expand Down Expand Up @@ -970,18 +960,16 @@ but not if you let the destructor do the closing.

SQLite now has incremental :ref:`blob I/O <blobio>`

`Issue 4 <https://code.google.com/p/apsw/issues/detail?id=4>`_ which
could lead to generic error messages was fixed in SQLite 3.5.9.
:issue:`4` which could lead to generic error messages was fixed in
SQLite 3.5.9.

Fixed `issue 1 <https://code.google.com/p/apsw/issues/detail?id=1>`_
error in example code for virtual tables which caused filename errors
on Windows.
Fixed :issue:`1` error in example code for virtual tables which caused
filename errors on Windows.

Fixed `issue 15 <https://code.google.com/p/apsw/issues/detail?id=15>`_
releasing the GIL around calls to sqlite3_prepare.
Fixed :issue:`15` releasing the GIL around calls to sqlite3_prepare.

Fixed `issue 7 <https://code.google.com/p/apsw/issues/detail?id=7>`_
ensuring that extension module filenames are converted to utf8.
Fixed :issue:`7` ensuring that extension module filenames are
converted to utf8.

Use the `sqlite3_open_v2 <https://sqlite.org/c3ref/open.html>`_
interface which allows specifying which vfs to use. This release does
Expand Down
4 changes: 3 additions & 1 deletion doc/conf.py
Expand Up @@ -31,7 +31,9 @@
'SQLite ticket #'),
'sqliteapi': ('https://sqlite.org/c3ref/%s.html', 'XXYouShouldNotSeeThisXX'),
'issue': ('https://github.com/rogerbinns/apsw/issues/%s',
'APSW issue ')
'APSW issue '),
'source': ('https://github.com/rogerbinns/apsw/blob/master/%s',
''),
}


Expand Down
39 changes: 19 additions & 20 deletions doc/download.rst
Expand Up @@ -19,44 +19,43 @@ way to build or all the :ref:`options available <building>`.
.. downloads-begin
* `apsw-3.8.2-r1.zip
<https://code.google.com/p/apsw/downloads/detail?name=apsw-3.8.2-r1.zip>`_
<https://github.com/rogerbinns/apsw/releases/download/v3.8.2-r1/apsw-3.8.2-r1.zip>`__
(Source, includes this HTML Help)


* Windows Python 2.3 `32bit
<https://code.google.com/p/apsw/downloads/detail?name=apsw-3.8.2-r1.win32-py2.3.exe>`__
<https://github.com/rogerbinns/apsw/releases/download/v3.8.2-r1/apsw-3.8.2-r1.win32-py2.3.exe>`__

* Windows Python 2.4 `32bit
<https://code.google.com/p/apsw/downloads/detail?name=apsw-3.8.2-r1.win32-py2.4.exe>`__
<https://github.com/rogerbinns/apsw/releases/download/v3.8.2-r1/apsw-3.8.2-r1.win32-py2.4.exe>`__

* Windows Python 2.5 `32bit
<https://code.google.com/p/apsw/downloads/detail?name=apsw-3.8.2-r1.win32-py2.5.exe>`__
<https://github.com/rogerbinns/apsw/releases/download/v3.8.2-r1/apsw-3.8.2-r1.win32-py2.5.exe>`__

* Windows Python 2.6 `32bit
<https://code.google.com/p/apsw/downloads/detail?name=apsw-3.8.2-r1.win32-py2.6.exe>`__
<https://github.com/rogerbinns/apsw/releases/download/v3.8.2-r1/apsw-3.8.2-r1.win32-py2.6.exe>`__
`64bit
<https://code.google.com/p/apsw/downloads/detail?name=apsw-3.8.2-r1.win-amd64-py2.6.exe>`__
<https://github.com/rogerbinns/apsw/releases/download/v3.8.2-r1/apsw-3.8.2-r1.win-amd64-py2.6.exe>`__

* Windows Python 2.7 `32bit
<https://code.google.com/p/apsw/downloads/detail?name=apsw-3.8.2-r1.win32-py2.7.exe>`__
<https://github.com/rogerbinns/apsw/releases/download/v3.8.2-r1/apsw-3.8.2-r1.win32-py2.7.exe>`__
`64bit
<https://code.google.com/p/apsw/downloads/detail?name=apsw-3.8.2-r1.win-amd64-py2.7.exe>`__
<https://github.com/rogerbinns/apsw/releases/download/v3.8.2-r1/apsw-3.8.2-r1.win-amd64-py2.7.exe>`__

* Windows Python 3.1 `32bit
<https://code.google.com/p/apsw/downloads/detail?name=apsw-3.8.2-r1.win32-py3.1.exe>`__
<https://github.com/rogerbinns/apsw/releases/download/v3.8.2-r1/apsw-3.8.2-r1.win32-py3.1.exe>`__
`64bit
<https://code.google.com/p/apsw/downloads/detail?name=apsw-3.8.2-r1.win-amd64-py3.1.exe>`__
<https://github.com/rogerbinns/apsw/releases/download/v3.8.2-r1/apsw-3.8.2-r1.win-amd64-py3.1.exe>`__

* Windows Python 3.2 `32bit
<https://code.google.com/p/apsw/downloads/detail?name=apsw-3.8.2-r1.win32-py3.2.exe>`__
<https://github.com/rogerbinns/apsw/releases/download/v3.8.2-r1/apsw-3.8.2-r1.win32-py3.2.exe>`__
`64bit
<https://code.google.com/p/apsw/downloads/detail?name=apsw-3.8.2-r1.win-amd64-py3.2.exe>`__
<https://github.com/rogerbinns/apsw/releases/download/v3.8.2-r1/apsw-3.8.2-r1.win-amd64-py3.2.exe>`__

* Windows Python 3.3 `32bit
<https://code.google.com/p/apsw/downloads/detail?name=apsw-3.8.2-r1.win32-py3.3.exe>`__
<https://github.com/rogerbinns/apsw/releases/download/v3.8.2-r1/apsw-3.8.2-r1.win32-py3.3.exe>`__

* `apsw-3.8.2-r1-sigs.zip
<https://code.google.com/p/apsw/downloads/detail?name=apsw-3.8.2-r1-sigs.zip>`_
<https://github.com/rogerbinns/apsw/releases/download/v3.8.2-r1/apsw-3.8.2-r1-sigs.zip>`__
GPG signatures for all files

.. downloads-end
Expand Down Expand Up @@ -88,9 +87,9 @@ machine.
Verifying your download
=======================

Downloads are now digitally signed so you can verify they have not
been tampered with. Download and extract the zip file of signatures
listed above. These instructions are for `GNU Privacy Guard
Downloads are digitally signed so you can verify they have not been
tampered with. Download and extract the zip file of signatures listed
above. These instructions are for `GNU Privacy Guard
<http://www.gnupg.org/>`__. (GPG is installed as standard on most
Unix/Linux platforms and can be downloaded for Windows.)

Expand Down Expand Up @@ -127,8 +126,8 @@ Getting the signing key
Source code control
===================

The source is controlled by Mercurial documented at
https://code.google.com/p/apsw/source/checkout
The source is controlled by Git - start at
https://github.com/rogerbinns/apsw

easy_install/pip/pypi
=====================
Expand Down
13 changes: 5 additions & 8 deletions doc/execution.rst
Expand Up @@ -206,12 +206,11 @@ APSW Trace

APSW includes a tracing script as part of the :ref:`source
distribution <source_and_binaries>` named :file:`apswtrace.py`, or you
can get a copy directly from `source control
<https://code.google.com/p/apsw/source/browse/tools/apswtrace.py>`__
(choose "View Raw File"). This script lets you easily trace SQL
execution as well as providing a summary report without modifying your
code. If it is installed anywhere on your :envvar:`PYTHONPATH` then
you can invoke it with ``-m``::
can get a copy directly from :source:`source control
<tools/apswtrace.py>` (choose "Raw File"). This script lets you
easily trace SQL execution as well as providing a summary report
without modifying your code. If it is installed anywhere on your
:envvar:`PYTHONPATH` then you can invoke it with ``-m``::

$ python -m apswtrace [apswtrace options] yourscript.py [your options]

Expand Down Expand Up @@ -401,5 +400,3 @@ This shows the longest running queries with time in seconds.
0.646 select timesten(x) from foo where x=? order by x
0.631 select timesten(x) from foo where x=? order by x
0.620 select timesten(x) from foo where x=? order by x
2 changes: 1 addition & 1 deletion doc/index.rst
Expand Up @@ -16,7 +16,7 @@ it works the way SQLite 3 does. (`pysqlite <https://github.com/ghaering/pysqlite
is DBAPI compliant - see the :ref:`differences between apsw and
pysqlite 2 <pysqlitediffs>`).

APSW is hosted at https://code.google.com/p/apsw/
APSW is hosted at https://github.com/rogerbinns/apsw

Contents:

Expand Down

0 comments on commit 2442b96

Please sign in to comment.