--- 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]
-----------------------------------------------------------------------------

Reply via email to