Reproduced on Windows, SQLite 3.7.8.

F.

On Thu, Oct 13, 2011 at 5:45 PM, Wendland, Michael
<michael.wendl...@hp.com> wrote:
> Hello,
>
> I've encountered an error running 3.7.8 and 3.7.7.1 that seems rather 
> strange.  It's reproducible so far as I know.
>
> CREATE VIRTUAL TABLE fts USING fts3( tags TEXT);
> INSERT INTO fts (tags) VALUES ('tag1');
> SELECT * FROM fts WHERE tags MATCH 'tag1';
>
> You can run an UPDATE to change the value in the tags field and rerun that 
> SELECT statement without error.  Do not create a second row, as this error 
> seems to appear only when there is a single row in the virtual table.  Now 
> close the database and reopen it, then try the following statements.
>
>                UPDATE fts SET tags = 'tag1' WHERE rowid = 1;
>                SELECT * FROM fts WHERE tags MATCH 'tag1';
>
> That SELECT returns "Error: database disk image is malformed".  Taking a dump 
> before and after the UPDATE shows that a segdir entry is being assigned a 
> different value despite the tags entry remaining exactly the same.  Changing 
> the value further does not rectify the situation, nor does using a different 
> string.  Running a "PRAGMA integrity_check" returns "ok", so the underlying 
> database is fine (and you can use other tables and any rows you insert after 
> just fine).  Inserting a new row and then changing the value rectifies the 
> problem.  Tests seem to indicate that it doesn't matter what the rowid is (or 
> the  sequence of inserts and deletes have been run on the virtual table 
> beforehand), the problem appears when changing the only row in the virtual 
> table.
>
> I've reproduced this using a CLI compiled from the autoconf source 
> amalgamation on RHEL 5.5 (in a VM) and the precompiled Windows CLI.
>
> Is anyone able to help?  (I haven't accidentally posted this to the wrong 
> list have I?)
>
> - Michael
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to