Ticket #1918 (closed enhancement: fixed)

Opened 4 years ago

Last modified 5 months ago

Python 2.6 includes a SQLite3 wrapper in the standard library, which Axiom could use if found

Reported by: bigdog Assigned to: exarkun
Priority: normal Milestone:
Component: Axiom Severity: normal
Keywords: python 2.5 sqlite Cc:
Estimated Completion (YYYY/MM/DD): Branch: branches/stdlib-sqlite3-1918
Author: exarkun

Description (Last modified by exarkun)

Using the stdlib version would simplify deployment, as it reduces the number of dependencies by one.

The version of the SQLite3 wrapper in Python 2.5 is unsuitable due to long-standing critical bugs (as described in comments on this ticket). The version in Python 2.6 is probably okay, though (or at least as good as the third-party pysqlite2 module).

Attachments

_pysqlite2.patch (398 bytes) - added by bigdog on 01/21/07 00:56:49.
_pysqlite2.2.patch (398 bytes) - added by bigdog on 01/21/07 10:25:46.

Change History

01/21/07 00:56:49 changed by bigdog

  • attachment _pysqlite2.patch added.

01/21/07 08:22:12 changed by mithrandi

  • description changed.

01/21/07 10:25:46 changed by bigdog

  • attachment _pysqlite2.2.patch added.

01/22/07 08:29:11 changed by glyph

  • status changed from new to closed.
  • resolution set to invalid.

Thanks for pointing this out, but I'm going to intentionally leave it unfixed until a version of Python 2.5 ships without this critical sqlite bug: http://initd.org/tracker/pysqlite/ticket/185

It's been fixed in pysqlite, so for now it is better to install your own.

01/22/07 08:29:15 changed by glyph

  • status changed from closed to reopened.
  • resolution deleted.

01/22/07 08:29:21 changed by glyph

  • status changed from reopened to closed.
  • resolution set to wontfix.

12/13/09 10:21:53 changed by exarkun

  • status changed from closed to reopened.
  • severity changed from blocker to normal.
  • priority changed from highest to normal.
  • completion_estimate_date changed.
  • branch changed.
  • branch_author changed.
  • resolution deleted.

The initd.org link above is broken. However, there's a mirror of the issue tracker, and I found the ticket there: errors which occur in SQLITE_SCHEMA retry of execute are dropped.

This appears to have been fixed in the stdlib in r53420.

This fix was made on trunk, though, after Python 2.5, and never backported to the 2.5 branch. So, SQLite3 support in all Python 2.5 releases have this bug. However, Python 2.6 does not.

That's a pretty disgusting situation. Fortunately, enough time has passed that I can live with requiring Python 2.6 or the third-party module.

12/13/09 10:25:47 changed by exarkun

  • type changed from defect to enhancement.
  • description changed.
  • summary changed from axiom crashes on python 2.5 due to sqlite module to Python 2.6 includes a SQLite3 wrapper in the standard library, which Axiom could use if found.

Changing summary and description to make it clear what this ticket is actually about.

12/13/09 12:41:25 changed by exarkun

  • branch set to branches/stdlib-sqlite3-1918.
  • branch_author set to exarkun.

(In [17881]) Branching to 'stdlib-sqlite3-1918'

12/13/09 12:46:54 changed by exarkun

(In [17882]) Fall back to stdlib sqlite3 on Python 2.6 and above

refs #1918

12/13/09 12:47:29 changed by exarkun

  • keywords changed from python 2.5 sqlite to python 2.5 sqlite review.
  • owner deleted.
  • status changed from reopened to new.

04/02/10 22:54:46 changed by mithrandi

  • keywords changed from python 2.5 sqlite review to python 2.5 sqlite.
  • owner set to exarkun.

Tests pass, the changes are relatively straightforward, and this should make Axiom more easily usable; please merge :)

04/03/10 09:38:36 changed by exarkun

  • status changed from new to closed.
  • resolution set to fixed.

(In [17927]) Merge stdlib-sqlite3-1918

Author: exarkun Reviewer: mithrandi Fixes: #1918

Use the stdlib sqlite3 module on Python 2.6 or newer if the third-party pysqlite2 is not installed.

jethro@divmod.org