Opened at 2012-11-18T06:41:52Z
Last modified at 2013-07-12T16:47:48Z
#1864 new enhancement
turn off the AUTOINCREMENT feature in our use of sqlite? — at Initial Version
Reported by: | zooko | Owned by: | |
---|---|---|---|
Priority: | normal | Milestone: | soon |
Component: | code-storage | Version: | 1.9.2 |
Keywords: | sqlite leasedb | Cc: | |
Launchpad Bug: |
Description
I just discovered this doc:
http://sqlite.org/autoinc.html
There are two different ways that sqlite can provide automatic "ROWID". The standard one is a tad more efficient for sqlite to implement, the other one — AUTOINCREMENT — makes sure that you don't get the same ROWID twice in a row if you create a new row, then delete it, then create another new row. (The AUTOINCREMENT one also has a different behavior if you manually set your ROWID and you set it to the largest integer that sqlite can handle.)
As far as I can think, we don't mind if the same ROWID is used to refer both to a row that currently exists and a row that used to exist but does no longer. (Because we never delete a row without also deleting or updating all other references to it. Right?)
If I'm right, which I'm not sure of, then we could stop specifying to sqlite that we need the AUTOINCREMENT style, and instead use the standard and slightly more efficient style of ROWID.