Hello.

The PRAGMA integrity_check is telling me that "row 2 missing from
index tbvk".  This is reproducible with the following commands.
Should I be getting this message?  Or is it a bug?

SQLite version 3.9.2 2015-11-02 18:31:45
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> CREATE TABLE tb(k INTEGER PRIMARY KEY, v);
sqlite> CREATE INDEX tbvk ON tb(v, k);
sqlite> INSERT INTO tb(k, v) VALUES (8, 356282677878746339);
sqlite> INSERT INTO tb(k, v) VALUES (7, 356282677878746339.0);
sqlite> INSERT INTO tb(k, v) VALUES (6, 356282677878746340);
sqlite> DELETE FROM tb WHERE k = 7;
sqlite> SELECT k, v, typeof(v) FROM tb ORDER BY v, k;
6|356282677878746340|integer
8|356282677878746339|integer
sqlite> PRAGMA integrity_check;
row 2 missing from index tbvk
sqlite> DROP INDEX tbvk;
sqlite> SELECT k, v, typeof(v) FROM tb ORDER BY v, k;
8|356282677878746339|integer
6|356282677878746340|integer
sqlite> PRAGMA compile_options;
OMIT_LOAD_EXTENSION
SYSTEM_MALLOC
THREADSAFE=1
sqlite> .quit

I am using sqlite 3.9.2 built from the amalgamation on linux x86_64
with gcc 4.8.1 with the following command line:

gcc -pthread -O2 -DSQLITE_OMIT_LOAD_EXTENSION=1 -o sqlite3 sqlite3.c shell.c

-- Ambrus

Reply via email to