--- Scott Hess <[EMAIL PROTECTED]> wrote:
> Soooo, as far as I can tell, this behaviour changed in October, with
> http://www.sqlite.org/cvstrac/chngview?cn=3470 . Which is before fts2
> even existed! So fts2 has been broken in this way essentially
> forever. *sigh*. [I'm not entirely clear why that change introduced
> this difference, but it did, so be it.]
I'm confused by what behavior you mean...
VACUUM has changed implicit rowids long before that patch:
SQLite version 3.2.0 (~ March 2005)
Enter ".help" for instructions
sqlite> CREATE TABLE t(a);
sqlite> INSERT INTO "t" VALUES('one');
sqlite> INSERT INTO "t" VALUES('two');
sqlite> INSERT INTO "t" VALUES('three');
sqlite> select rowid, * from t;
1|one
2|two
3|three
sqlite> delete from t where a = 'one';
sqlite> select rowid, * from t;
2|two
3|three
sqlite> vacuum;
sqlite> select rowid, * from t;
1|two
2|three
> Anyhow, moving on... anyone have opinions on how to handle this? The
> patches to fix fts1/2 are simple, but mean that older code will break
> if it tries to read the database created by the patched version.
> Older code is already broken, but only if you use vacuum. My
> inclination is to add code to fts2 and fts1 to upgrade tables, and put
> a prominent disclaimer somewhere.
If you upgrade the tables in a new fts1/fts2 library, you cannot return
to using the old code. This may surprise people when they revert to a
previous version to test. I think there's no good way out of this except
to rename the fts1/fts2 modules to something else.
Other alternatives:
* Lobby drh to retain implicit rowids across a VACUUM.
That way you can keep the old code without modifications.
* Make VACUUM a no-op if FTS is installed (either at compile time
or run-time).
I'm not saying these alternatives are good or likely to happen.
____________________________________________________________________________________
Sick sense of humor? Visit Yahoo! TV's
Comedy with an Edge to see what's on, when.
http://tv.yahoo.com/collections/222
-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------