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